我目前正在编写一个 Android 应用程序(API 级别 2.3.3),该应用程序涉及从通过相机 Intent 拍摄的照片中获取 300 个最高灰度值。接下来,对结果值执行函数(主要是数学和一些基于日历/时钟的函数)。我正在使用 Eclipse/模拟相机。
相机将启动并且拍摄照片没有问题,但当我尝试保存照片时(以及像素排序和数学/日历功能发生时),应用程序崩溃了。
我仅使用相机 Intent 和主变量 (Y) 的“虚拟”值测试了该应用,效果很好。
出了什么问题?
下面是相关的代码部分:
int[] pixels;
Button button = (Button) findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String _path = Environment.getExternalStorageDirectory() + File.separator + "sunpic.jpg";
File file = new File(_path);
Uri outputFileUri = Uri.fromFile(file);
Intent intent = new Intent(
android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri);
startActivityForResult(intent, 1);
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch(requestCode) {
case (1): {
if (resultCode == RESULT_OK) {
Uri outputFileUri = data.getData();
try {
Bitmap bmp = android.provider.MediaStore.Images.Media.getBitmap(this.getContentResolver(), outputFileUri);
bmp.getPixels(pixels, 0, bmp.getWidth(), 0, 0, bmp.getWidth(), bmp.getHeight());
for(int x = 0; x < bmp.getWidth(); ++x) {
for(int y = 0; y < bmp.getHeight(); ++y) {
int index = y * bmp.getWidth() + x;
int R = (pixels[index] >> 16) & 0xff;
int G = (pixels[index] >> 8) & 0xff;
int B = pixels[index] & 0xff;
Double Grey = (0.299 * R + 0.587 * G + 0.114 * B);
int topSize = 300;
// priority queue to save the largest topSize values
PriorityQueue<Double> pq;
pq = new PriorityQueue<Double>(topSize+1);
double nv = Grey.floatValue();
if (pq.size() < topSize || pq.peek() < nv) {
// remove the smallest value from the queue only if it is full
if (pq.size() == topSize) {
pq.poll();
}
pq.add(nv);
}
double sum = 0;
for(Double d : pq) {
sum += d;
}
double Y = sum / 300;
在 XML list 中,我有:
<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-feature android:name="android.hardware.camera"/>
LogCat 错误/警告:
06-09 02:10:40.076: E/SurfaceFlinger(37): ro.sf.lcd_density must be defined as a build property
06-09 02:10:41.646: E/Trace(4464): error opening trace file: No such file or directory (2)
06-09 02:10:49.907: W/ActivityManager(289): Launch timeout has expired, giving up wake lock!
06-09 02:10:50.817: E/SurfaceFlinger(37): ro.sf.lcd_density must be defined as a build property
06-09 02:10:51.106: W/ActivityManager(289): Activity idle timeout for ActivityRecord{40ec7900 inActivity}
06-09 02:10:55.547: W/ActivityManager(289): Unable to start service Intent { act=com.android.email.ACCOUNT_INTENT } U=0: not found
06-09 02:10:55.587: W/EGL_emulation(4464): eglSurfaceAttrib not implemented
06-09 02:10:56.477: W/ActivityManager(289): Unable to start service Intent { act=com.android.email.ACCOUNT_INTENT } U=0: not found
06-09 02:10:56.487: E/ActivityThread(707): Service com.android.exchange.ExchangeService has leaked ServiceConnection com.android.emailcommon.service.ServiceProxy$ProxyConnection@40cfe978 that was originally bound here
06-09 02:10:56.487: E/ActivityThread(707): android.app.ServiceConnectionLeaked: Service com.android.exchange.ExchangeService has leaked ServiceConnection com.android.emailcommon.service.ServiceProxy$ProxyConnection@40cfe978 that was originally bound here
06-09 02:10:56.487: E/ActivityThread(707): at android.app.LoadedApk$ServiceDispatcher.<init>(LoadedApk.java:969)
06-09 02:10:56.487: E/ActivityThread(707): at android.app.LoadedApk.getServiceDispatcher(LoadedApk.java:863)
06-09 02:10:56.487: E/ActivityThread(707): at android.app.ContextImpl.bindService(ContextImpl.java:1418)
06-09 02:10:56.487: E/ActivityThread(707): at android.app.ContextImpl.bindService(ContextImpl.java:1407)
06-09 02:10:56.487: E/ActivityThread(707): at android.content.ContextWrapper.bindService(ContextWrapper.java:473)
06-09 02:10:56.487: E/ActivityThread(707): at com.android.emailcommon.service.ServiceProxy.setTask(ServiceProxy.java:157)
06-09 02:10:56.487: E/ActivityThread(707): at com.android.emailcommon.service.ServiceProxy.setTask(ServiceProxy.java:145)
06-09 02:10:56.487: E/ActivityThread(707): at com.android.emailcommon.service.ServiceProxy.test(ServiceProxy.java:191)
06-09 02:10:56.487: E/ActivityThread(707): at com.android.exchange.ExchangeService$7.run(ExchangeService.java:1850)
06-09 02:10:56.487: E/ActivityThread(707): at com.android.emailcommon.utility.Utility$2.doInBackground(Utility.java:551)
06-09 02:10:56.487: E/ActivityThread(707): at com.android.emailcommon.utility.Utility$2.doInBackground(Utility.java:549)
06-09 02:10:56.487: E/ActivityThread(707): at android.os.AsyncTask$2.call(AsyncTask.java:287)
06-09 02:10:56.487: E/ActivityThread(707): at java.util.concurrent.FutureTask.run(FutureTask.java:234)
06-09 02:10:56.487: E/ActivityThread(707): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
06-09 02:10:56.487: E/ActivityThread(707): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
06-09 02:10:56.487: E/ActivityThread(707): at java.lang.Thread.run(Thread.java:856)
06-09 02:10:56.510: E/StrictMode(707): null
06-09 02:10:56.510: E/StrictMode(707): android.app.ServiceConnectionLeaked: Service com.android.exchange.ExchangeService has leaked ServiceConnection com.android.emailcommon.service.ServiceProxy$ProxyConnection@40cfe978 that was originally bound here
06-09 02:10:56.510: E/StrictMode(707): at android.app.LoadedApk$ServiceDispatcher.<init>(LoadedApk.java:969)
06-09 02:10:56.510: E/StrictMode(707): at android.app.LoadedApk.getServiceDispatcher(LoadedApk.java:863)
06-09 02:10:56.510: E/StrictMode(707): at android.app.ContextImpl.bindService(ContextImpl.java:1418)
06-09 02:10:56.510: E/StrictMode(707): at android.app.ContextImpl.bindService(ContextImpl.java:1407)
06-09 02:10:56.510: E/StrictMode(707): at android.content.ContextWrapper.bindService(ContextWrapper.java:473)
06-09 02:10:56.510: E/StrictMode(707): at com.android.emailcommon.service.ServiceProxy.setTask(ServiceProxy.java:157)
06-09 02:10:56.510: E/StrictMode(707): at com.android.emailcommon.service.ServiceProxy.setTask(ServiceProxy.java:145)
06-09 02:10:56.510: E/StrictMode(707): at com.android.emailcommon.service.ServiceProxy.test(ServiceProxy.java:191)
06-09 02:10:56.510: E/StrictMode(707): at com.android.exchange.ExchangeService$7.run(ExchangeService.java:1850)
06-09 02:10:56.510: E/StrictMode(707): at com.android.emailcommon.utility.Utility$2.doInBackground(Utility.java:551)
06-09 02:10:56.510: E/StrictMode(707): at com.android.emailcommon.utility.Utility$2.doInBackground(Utility.java:549)
06-09 02:10:56.510: E/StrictMode(707): at android.os.AsyncTask$2.call(AsyncTask.java:287)
06-09 02:10:56.510: E/StrictMode(707): at java.util.concurrent.FutureTask.run(FutureTask.java:234)
06-09 02:10:56.510: E/StrictMode(707): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
06-09 02:10:56.510: E/StrictMode(707): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
06-09 02:10:56.510: E/StrictMode(707): at java.lang.Thread.run(Thread.java:856)
06-09 02:10:56.557: W/ActivityManager(289): Unbind failed: could not find connection for android.os.BinderProxy@40e69780
06-09 02:11:02.557: W/IInputConnectionWrapper(4464): getCursorCapsMode on inactive InputConnection
06-09 02:11:03.158: E/SurfaceFlinger(37): ro.sf.lcd_density must be defined as a build property
06-09 02:11:14.797: E/WVMExtractor(40): Failed to open libwvm.so
06-09 02:11:15.637: E/WVMExtractor(40): Failed to open libwvm.so
06-09 02:11:22.179: E/SurfaceFlinger(37): ro.sf.lcd_density must be defined as a build property
06-09 02:11:23.076: W/EGL_emulation(1762): eglSurfaceAttrib not implemented
06-09 02:11:23.256: W/ActivityManager(289): Launch timeout has expired, giving up wake lock!
06-09 02:11:23.716: W/ActivityManager(289): Activity idle timeout for ActivityRecord{40fb5d68 u0 com.android.camera/.Camera}
06-09 02:11:24.146: E/SurfaceFlinger(37): ro.sf.lcd_density must be defined as a build property
06-09 02:11:24.166: E/SurfaceFlinger(37): ro.sf.lcd_density must be defined as a build property
06-09 02:11:29.237: W/InputConnectionWrapper.ICC(378): Timed out waiting on IInputContextCallback
06-09 02:11:34.387: W/AudioTrack(40): releaseBuffer() track 0x2a02af18 name=0x1 disabled, restarting
06-09 02:11:36.000: W/IInputConnectionWrapper(4464): getCursorCapsMode on inactive InputConnection
06-09 02:11:36.087: W/IInputConnectionWrapper(4464): showStatusIcon on inactive InputConnection
06-09 02:11:38.667: W/ActivityManager(289): Activity pause timeout for ActivityRecord{40fb5d68 u0 com.android.camera/.Camera}
06-09 02:11:38.950: W/AudioFlinger(40): session id 9 not found for pid 40
06-09 02:11:39.047: W/dalvikvm(4464): threadid=1: thread exiting with uncaught exception (group=0x40a71930)
06-09 02:11:39.057: W/AudioFlinger(40): session id 10 not found for pid 40
06-09 02:11:39.377: E/AndroidRuntime(4464): FATAL EXCEPTION: main
06-09 02:11:39.377: E/AndroidRuntime(4464): java.lang.RuntimeException: Failure delivering result ResultInfo{who=null, request=1, result=-1, data=null} to activity {irradiance.aerosolopticaldepth/irradiance.aerosolopticaldepth.MainActivity}: java.lang.NullPointerException
06-09 02:11:39.377: E/AndroidRuntime(4464): at android.app.ActivityThread.deliverResults(ActivityThread.java:3319)
06-09 02:11:39.377: E/AndroidRuntime(4464): at android.app.ActivityThread.handleSendResult(ActivityThread.java:3362)
06-09 02:11:39.377: E/AndroidRuntime(4464): at android.app.ActivityThread.access$1100(ActivityThread.java:141)
06-09 02:11:39.377: E/AndroidRuntime(4464): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1282)
06-09 02:11:39.377: E/AndroidRuntime(4464): at android.os.Handler.dispatchMessage(Handler.java:99)
06-09 02:11:39.377: E/AndroidRuntime(4464): at android.os.Looper.loop(Looper.java:137)
06-09 02:11:39.377: E/AndroidRuntime(4464): at android.app.ActivityThread.main(ActivityThread.java:5041)
06-09 02:11:39.377: E/AndroidRuntime(4464): at java.lang.reflect.Method.invokeNative(Native Method)
06-09 02:11:39.377: E/AndroidRuntime(4464): at java.lang.reflect.Method.invoke(Method.java:511)
06-09 02:11:39.377: E/AndroidRuntime(4464): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
06-09 02:11:39.377: E/AndroidRuntime(4464): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
06-09 02:11:39.377: E/AndroidRuntime(4464): at dalvik.system.NativeStart.main(Native Method)
06-09 02:11:39.377: E/AndroidRuntime(4464): Caused by: java.lang.NullPointerException
06-09 02:11:39.377: E/AndroidRuntime(4464): at irradiance.aerosolopticaldepth.MainActivity.onActivityResult(MainActivity.java:73)
06-09 02:11:39.377: E/AndroidRuntime(4464): at android.app.Activity.dispatchActivityResult(Activity.java:5293)
06-09 02:11:39.377: E/AndroidRuntime(4464): at android.app.ActivityThread.deliverResults(ActivityThread.java:3315)
06-09 02:11:39.377: E/AndroidRuntime(4464): ... 11 more
06-09 02:11:39.897: W/ActivityManager(289): Force finishing activity irradiance.aerosolopticaldepth/.MainActivity
06-09 02:11:40.199: E/StrictMode(1762): A resource was acquired at attached stack trace but never released. See java.io.Closeable for information on avoiding resource leaks.
06-09 02:11:40.199: E/StrictMode(1762): java.lang.Throwable: Explicit termination method 'release' not called
06-09 02:11:40.199: E/StrictMode(1762): at dalvik.system.CloseGuard.open(CloseGuard.java:184)
06-09 02:11:40.199: E/StrictMode(1762): at android.view.Surface.<init>(Surface.java:289)
06-09 02:11:40.199: E/StrictMode(1762): at android.view.SurfaceView.<init>(SurfaceView.java:96)
06-09 02:11:40.199: E/StrictMode(1762): at java.lang.reflect.Constructor.constructNative(Native Method)
06-09 02:11:40.199: E/StrictMode(1762): at java.lang.reflect.Constructor.newInstance(Constructor.java:417)
06-09 02:11:40.199: E/StrictMode(1762): at android.view.LayoutInflater.createView(LayoutInflater.java:587)
06-09 02:11:40.199: E/StrictMode(1762): at android.view.LayoutInflater.onCreateView(LayoutInflater.java:643)
06-09 02:11:40.199: E/StrictMode(1762): at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:66)
06-09 02:11:40.199: E/StrictMode(1762): at android.view.LayoutInflater.onCreateView(LayoutInflater.java:660)
06-09 02:11:40.199: E/StrictMode(1762): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:685)
06-09 02:11:40.199: E/StrictMode(1762): at android.view.LayoutInflater.rInflate(LayoutInflater.java:746)
06-09 02:11:40.199: E/StrictMode(1762): at android.view.LayoutInflater.rInflate(LayoutInflater.java:749)
06-09 02:11:40.199: E/StrictMode(1762): at android.view.LayoutInflater.parseInclude(LayoutInflater.java:830)
06-09 02:11:40.199: E/StrictMode(1762): at android.view.LayoutInflater.rInflate(LayoutInflater.java:736)
06-09 02:11:40.199: E/StrictMode(1762): at android.view.LayoutInflater.inflate(LayoutInflater.java:489)
06-09 02:11:40.199: E/StrictMode(1762): at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
06-09 02:11:40.199: E/StrictMode(1762): at android.view.LayoutInflater.inflate(LayoutInflater.java:352)
06-09 02:11:40.199: E/StrictMode(1762): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:270)
06-09 02:11:40.199: E/StrictMode(1762): at android.app.Activity.setContentView(Activity.java:1881)
06-09 02:11:40.199: E/StrictMode(1762): at com.android.camera.Camera.onCreate(Camera.java:1131)
06-09 02:11:40.199: E/StrictMode(1762): at android.app.Activity.performCreate(Activity.java:5104)
06-09 02:11:40.199: E/StrictMode(1762): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
06-09 02:11:40.199: E/StrictMode(1762): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)
06-09 02:11:40.199: E/StrictMode(1762): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
06-09 02:11:40.199: E/StrictMode(1762): at android.app.ActivityThread.access$600(ActivityThread.java:141)
06-09 02:11:40.199: E/StrictMode(1762): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
06-09 02:11:40.199: E/StrictMode(1762): at android.os.Handler.dispatchMessage(Handler.java:99)
06-09 02:11:40.199: E/StrictMode(1762): at android.os.Looper.loop(Looper.java:137)
06-09 02:11:40.199: E/StrictMode(1762): at android.app.ActivityThread.main(ActivityThread.java:5041)
06-09 02:11:40.199: E/StrictMode(1762): at java.lang.reflect.Method.invokeNative(Native Method)
06-09 02:11:40.199: E/StrictMode(1762): at java.lang.reflect.Method.invoke(Method.java:511)
06-09 02:11:40.199: E/StrictMode(1762): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
06-09 02:11:40.199: E/StrictMode(1762): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
06-09 02:11:40.199: E/StrictMode(1762): at dalvik.system.NativeStart.main(Native Method)
06-09 02:11:40.647: E/StrictMode(1762): A resource was acquired at attached stack trace but never released. See java.io.Closeable for information on avoiding resource leaks.
06-09 02:11:40.647: E/StrictMode(1762): java.lang.Throwable: Explicit termination method 'release' not called
06-09 02:11:40.647: E/StrictMode(1762): at dalvik.system.CloseGuard.open(CloseGuard.java:184)
06-09 02:11:40.647: E/StrictMode(1762): at android.view.Surface.<init>(Surface.java:289)
06-09 02:11:40.647: E/StrictMode(1762): at android.view.SurfaceView.<init>(SurfaceView.java:97)
06-09 02:11:40.647: E/StrictMode(1762): at java.lang.reflect.Constructor.constructNative(Native Method)
06-09 02:11:40.647: E/StrictMode(1762): at java.lang.reflect.Constructor.newInstance(Constructor.java:417)
06-09 02:11:40.647: E/StrictMode(1762): at android.view.LayoutInflater.createView(LayoutInflater.java:587)
06-09 02:11:40.647: E/StrictMode(1762): at android.view.LayoutInflater.onCreateView(LayoutInflater.java:643)
06-09 02:11:40.647: E/StrictMode(1762): at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:66)
06-09 02:11:40.647: E/StrictMode(1762): at android.view.LayoutInflater.onCreateView(LayoutInflater.java:660)
06-09 02:11:40.647: E/StrictMode(1762): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:685)
06-09 02:11:40.647: E/StrictMode(1762): at android.view.LayoutInflater.rInflate(LayoutInflater.java:746)
06-09 02:11:40.647: E/StrictMode(1762): at android.view.LayoutInflater.rInflate(LayoutInflater.java:749)
06-09 02:11:40.647: E/StrictMode(1762): at android.view.LayoutInflater.parseInclude(LayoutInflater.java:830)
06-09 02:11:40.647: E/StrictMode(1762): at android.view.LayoutInflater.rInflate(LayoutInflater.java:736)
06-09 02:11:40.647: E/StrictMode(1762): at android.view.LayoutInflater.inflate(LayoutInflater.java:489)
06-09 02:11:40.647: E/StrictMode(1762): at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
06-09 02:11:40.647: E/StrictMode(1762): at android.view.LayoutInflater.inflate(LayoutInflater.java:352)
06-09 02:11:40.647: E/StrictMode(1762): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:270)
06-09 02:11:40.647: E/StrictMode(1762): at android.app.Activity.setContentView(Activity.java:1881)
06-09 02:11:40.647: E/StrictMode(1762): at com.android.camera.Camera.onCreate(Camera.java:1131)
06-09 02:11:40.647: E/StrictMode(1762): at android.app.Activity.performCreate(Activity.java:5104)
06-09 02:11:40.647: E/StrictMode(1762): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
06-09 02:11:40.647: E/StrictMode(1762): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)
06-09 02:11:40.647: E/StrictMode(1762): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
06-09 02:11:40.647: E/StrictMode(1762): at android.app.ActivityThread.access$600(ActivityThread.java:141)
06-09 02:11:40.647: E/StrictMode(1762): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
06-09 02:11:40.647: E/StrictMode(1762): at android.os.Handler.dispatchMessage(Handler.java:99)
06-09 02:11:40.647: E/StrictMode(1762): at android.os.Looper.loop(Looper.java:137)
06-09 02:11:40.647: E/StrictMode(1762): at android.app.ActivityThread.main(ActivityThread.java:5041)
06-09 02:11:40.647: E/StrictMode(1762): at java.lang.reflect.Method.invokeNative(Native Method)
06-09 02:11:40.647: E/StrictMode(1762): at java.lang.reflect.Method.invoke(Method.java:511)
06-09 02:11:40.647: E/StrictMode(1762): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
06-09 02:11:40.647: E/StrictMode(1762): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
06-09 02:11:40.647: E/StrictMode(1762): at dalvik.system.NativeStart.main(Native Method)
06-09 02:11:42.377: W/ActivityManager(289): Activity pause timeout for ActivityRecord{40ec7900 u0 irradiance.aerosolopticaldepth/.MainActivity}
06-09 02:11:43.637: E/SurfaceFlinger(37): ro.sf.lcd_density must be defined as a build property
06-09 02:11:47.517: W/ActivityManager(289): Unable to start service Intent { act=com.android.email.ACCOUNT_INTENT } U=0: not found
06-09 02:11:48.175: W/ActivityManager(289): Launch timeout has expired, giving up wake lock!
06-09 02:11:48.647: W/InputDispatcher(289): channel '40fc3848 irradiance.aerosolopticaldepth/irradiance.aerosolopticaldepth.MainActivity (server)' ~ Consumer closed input channel or an error occurred. events=0x9
06-09 02:11:48.647: E/InputDispatcher(289): channel '40fc3848 irradiance.aerosolopticaldepth/irradiance.aerosolopticaldepth.MainActivity (server)' ~ Channel is unrecoverably broken and will be disposed!
06-09 02:11:48.767: W/InputDispatcher(289): Attempted to unregister already unregistered input channel '40fc3848 irradiance.aerosolopticaldepth/irradiance.aerosolopticaldepth.MainActivity (server)'
06-09 02:11:49.668: W/ActivityManager(289): Unable to start service Intent { act=com.android.email.ACCOUNT_INTENT } U=0: not found
06-09 02:11:50.137: E/ActivityThread(707): Service com.android.exchange.ExchangeService has leaked ServiceConnection com.android.emailcommon.service.ServiceProxy$ProxyConnection@40d0b180 that was originally bound here
06-09 02:11:50.137: E/ActivityThread(707): android.app.ServiceConnectionLeaked: Service com.android.exchange.ExchangeService has leaked ServiceConnection com.android.emailcommon.service.ServiceProxy$ProxyConnection@40d0b180 that was originally bound here
06-09 02:11:50.137: E/ActivityThread(707): at android.app.LoadedApk$ServiceDispatcher.<init>(LoadedApk.java:969)
06-09 02:11:50.137: E/ActivityThread(707): at android.app.LoadedApk.getServiceDispatcher(LoadedApk.java:863)
06-09 02:11:50.137: E/ActivityThread(707): at android.app.ContextImpl.bindService(ContextImpl.java:1418)
06-09 02:11:50.137: E/ActivityThread(707): at android.app.ContextImpl.bindService(ContextImpl.java:1407)
06-09 02:11:50.137: E/ActivityThread(707): at android.content.ContextWrapper.bindService(ContextWrapper.java:473)
06-09 02:11:50.137: E/ActivityThread(707): at com.android.emailcommon.service.ServiceProxy.setTask(ServiceProxy.java:157)
06-09 02:11:50.137: E/ActivityThread(707): at com.android.emailcommon.service.ServiceProxy.setTask(ServiceProxy.java:145)
06-09 02:11:50.137: E/ActivityThread(707): at com.android.emailcommon.service.AccountServiceProxy.getDeviceId(AccountServiceProxy.java:116)
06-09 02:11:50.137: E/ActivityThread(707): at com.android.exchange.ExchangeService.getDeviceId(ExchangeService.java:1249)
06-09 02:11:50.137: E/ActivityThread(707): at com.android.exchange.ExchangeService$7.run(ExchangeService.java:1856)
06-09 02:11:50.137: E/ActivityThread(707): at com.android.emailcommon.utility.Utility$2.doInBackground(Utility.java:551)
06-09 02:11:50.137: E/ActivityThread(707): at com.android.emailcommon.utility.Utility$2.doInBackground(Utility.java:549)
06-09 02:11:50.137: E/ActivityThread(707): at android.os.AsyncTask$2.call(AsyncTask.java:287)
06-09 02:11:50.137: E/ActivityThread(707): at java.util.concurrent.FutureTask.run(FutureTask.java:234)
06-09 02:11:50.137: E/ActivityThread(707): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
06-09 02:11:50.137: E/ActivityThread(707): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
06-09 02:11:50.137: E/ActivityThread(707): at java.lang.Thread.run(Thread.java:856)
06-09 02:11:50.387: E/SurfaceFlinger(37): ro.sf.lcd_density must be defined as a build property
06-09 02:11:50.650: E/StrictMode(707): null
06-09 02:11:50.650: E/StrictMode(707): android.app.ServiceConnectionLeaked: Service com.android.exchange.ExchangeService has leaked ServiceConnection com.android.emailcommon.service.ServiceProxy$ProxyConnection@40d0b180 that was originally bound here
06-09 02:11:50.650: E/StrictMode(707): at android.app.LoadedApk$ServiceDispatcher.<init>(LoadedApk.java:969)
06-09 02:11:50.650: E/StrictMode(707): at android.app.LoadedApk.getServiceDispatcher(LoadedApk.java:863)
06-09 02:11:50.650: E/StrictMode(707): at android.app.ContextImpl.bindService(ContextImpl.java:1418)
06-09 02:11:50.650: E/StrictMode(707): at android.app.ContextImpl.bindService(ContextImpl.java:1407)
06-09 02:11:50.650: E/StrictMode(707): at android.content.ContextWrapper.bindService(ContextWrapper.java:473)
06-09 02:11:50.650: E/StrictMode(707): at com.android.emailcommon.service.ServiceProxy.setTask(ServiceProxy.java:157)
06-09 02:11:50.650: E/StrictMode(707): at com.android.emailcommon.service.ServiceProxy.setTask(ServiceProxy.java:145)
06-09 02:11:50.650: E/StrictMode(707): at com.android.emailcommon.service.AccountServiceProxy.getDeviceId(AccountServiceProxy.java:116)
06-09 02:11:50.650: E/StrictMode(707): at com.android.exchange.ExchangeService.getDeviceId(ExchangeService.java:1249)
06-09 02:11:50.650: E/StrictMode(707): at com.android.exchange.ExchangeService$7.run(ExchangeService.java:1856)
06-09 02:11:50.650: E/StrictMode(707): at com.android.emailcommon.utility.Utility$2.doInBackground(Utility.java:551)
06-09 02:11:50.650: E/StrictMode(707): at com.android.emailcommon.utility.Utility$2.doInBackground(Utility.java:549)
06-09 02:11:50.650: E/StrictMode(707): at android.os.AsyncTask$2.call(AsyncTask.java:287)
06-09 02:11:50.650: E/StrictMode(707): at java.util.concurrent.FutureTask.run(FutureTask.java:234)
06-09 02:11:50.650: E/StrictMode(707): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
06-09 02:11:50.650: E/StrictMode(707): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
06-09 02:11:50.650: E/StrictMode(707): at java.lang.Thread.run(Thread.java:856)
06-09 02:11:50.677: W/ActivityManager(289): Unbind failed: could not find connection for android.os.BinderProxy@41150178
06-09 02:11:50.927: W/EGL_emulation(407): eglSurfaceAttrib not implemented
06-09 02:11:51.347: E/ActivityThread(707): Service com.android.exchange.ExchangeService has leaked ServiceConnection com.android.emailcommon.service.ServiceProxy$ProxyConnection@40d0a990 that was originally bound here
06-09 02:11:51.347: E/ActivityThread(707): android.app.ServiceConnectionLeaked: Service com.android.exchange.ExchangeService has leaked ServiceConnection com.android.emailcommon.service.ServiceProxy$ProxyConnection@40d0a990 that was originally bound here
06-09 02:11:51.347: E/ActivityThread(707): at android.app.LoadedApk$ServiceDispatcher.<init>(LoadedApk.java:969)
06-09 02:11:51.347: E/ActivityThread(707): at android.app.LoadedApk.getServiceDispatcher(LoadedApk.java:863)
06-09 02:11:51.347: E/ActivityThread(707): at android.app.ContextImpl.bindService(ContextImpl.java:1418)
06-09 02:11:51.347: E/ActivityThread(707): at android.app.ContextImpl.bindService(ContextImpl.java:1407)
06-09 02:11:51.347: E/ActivityThread(707): at android.content.ContextWrapper.bindService(ContextWrapper.java:473)
06-09 02:11:51.347: E/ActivityThread(707): at com.android.emailcommon.service.ServiceProxy.setTask(ServiceProxy.java:157)
06-09 02:11:51.347: E/ActivityThread(707): at com.android.emailcommon.service.ServiceProxy.setTask(ServiceProxy.java:145)
06-09 02:11:51.347: E/ActivityThread(707): at com.android.emailcommon.service.ServiceProxy.test(ServiceProxy.java:191)
06-09 02:11:51.347: E/ActivityThread(707): at com.android.exchange.ExchangeService$7.run(ExchangeService.java:1850)
06-09 02:11:51.347: E/ActivityThread(707): at com.android.emailcommon.utility.Utility$2.doInBackground(Utility.java:551)
06-09 02:11:51.347: E/ActivityThread(707): at com.android.emailcommon.utility.Utility$2.doInBackground(Utility.java:549)
06-09 02:11:51.347: E/ActivityThread(707): at android.os.AsyncTask$2.call(AsyncTask.java:287)
06-09 02:11:51.347: E/ActivityThread(707): at java.util.concurrent.FutureTask.run(FutureTask.java:234)
06-09 02:11:51.347: E/ActivityThread(707): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
06-09 02:11:51.347: E/ActivityThread(707): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
06-09 02:11:51.347: E/ActivityThread(707): at java.lang.Thread.run(Thread.java:856)
06-09 02:11:52.498: W/ActivityManager(289): Activity idle timeout for ActivityRecord{40f7a298 u0 com.android.launcher/com.android.launcher2.Launcher}
最佳答案
仍然一点运气都没有,我已将相机 Intent 代码更改为:
@Override
public void onClick(View v) {
String _path = Environment.getExternalStorageDirectory().getAbsolutePath() + "sunpic.jpg";
File file = new File(_path);
//Uri fileUri = Uri.fromFile(file);
Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra(MediaStore.EXTRA_OUTPUT, file);
//File file = new File(Environment.getExternalStorageDirectory().getPath());
intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(file));
startActivityForResult(intent, CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE);
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
//super.onActivityResult(requestCode, resultCode, data);
if(requestCode == CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE && resultCode == RESULT_OK) {
//Uri file = data.getData();
FileInputStream is;
try {
is = new FileInputStream("mnt/sdcard/sunpic.jpg");
Bitmap bmp = BitmapFactory.decodeStream(is);
//Bitmap bmp = android.provider.MediaStore.Images.Media.getBitmap(this.getContentResolver(), file);
//Bitmap bmp = (Bitmap) data.getExtras().get("data");
bmp.getPixels(pixels, 0, bmp.getWidth(), 0, 0, bmp.getWidth(), bmp.getHeight());
其余部分与我原来的帖子中的内容相同。
logcat 是空的,我一在相机上拍照,它就卡住了。
我之前试过的不包括
FileInputStream is;
try {
is = new FileInputStream("mnt/sdcard/sunpic.jpg");
下一行是
Bitmap bmp = BitmapFactory.decodeStream("sunpic.jpg");
但这始终会引发 NullPointer 错误,我真的不明白为什么会这样,尽管阅读了许多其他线程/其他网络资源。
关于android - Android 中的相机 Intent 和优先级队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17001350/
总的来说,我对ruby还比较陌生,我正在为我正在创建的对象编写一些rspec测试用例。许多测试用例都非常基础,我只是想确保正确填充和返回值。我想知道是否有办法使用循环结构来执行此操作。不必为我要测试的每个方法都设置一个assertEquals。例如:describeitem,"TestingtheItem"doit"willhaveanullvaluetostart"doitem=Item.new#HereIcoulddotheitem.name.shouldbe_nil#thenIcoulddoitem.category.shouldbe_nilendend但我想要一些方法来使用
我试图在一个项目中使用rake,如果我把所有东西都放到Rakefile中,它会很大并且很难读取/找到东西,所以我试着将每个命名空间放在lib/rake中它自己的文件中,我添加了这个到我的rake文件的顶部:Dir['#{File.dirname(__FILE__)}/lib/rake/*.rake'].map{|f|requiref}它加载文件没问题,但没有任务。我现在只有一个.rake文件作为测试,名为“servers.rake”,它看起来像这样:namespace:serverdotask:testdoputs"test"endend所以当我运行rakeserver:testid时
作为我的Rails应用程序的一部分,我编写了一个小导入程序,它从我们的LDAP系统中吸取数据并将其塞入一个用户表中。不幸的是,与LDAP相关的代码在遍历我们的32K用户时泄漏了大量内存,我一直无法弄清楚如何解决这个问题。这个问题似乎在某种程度上与LDAP库有关,因为当我删除对LDAP内容的调用时,内存使用情况会很好地稳定下来。此外,不断增加的对象是Net::BER::BerIdentifiedString和Net::BER::BerIdentifiedArray,它们都是LDAP库的一部分。当我运行导入时,内存使用量最终达到超过1GB的峰值。如果问题存在,我需要找到一些方法来更正我的代
Rails2.3可以选择随时使用RouteSet#add_configuration_file添加更多路由。是否可以在Rails3项目中做同样的事情? 最佳答案 在config/application.rb中:config.paths.config.routes在Rails3.2(也可能是Rails3.1)中,使用:config.paths["config/routes"] 关于ruby-on-rails-Rails3中的多个路由文件,我们在StackOverflow上找到一个类似的问题
我需要从一个View访问多个模型。以前,我的links_controller仅用于提供以不同方式排序的链接资源。现在我想包括一个部分(我假设)显示按分数排序的顶级用户(@users=User.all.sort_by(&:score))我知道我可以将此代码插入每个链接操作并从View访问它,但这似乎不是“ruby方式”,我将需要在不久的将来访问更多模型。这可能会变得很脏,是否有针对这种情况的任何技术?注意事项:我认为我的应用程序正朝着单一格式和动态页面内容的方向发展,本质上是一个典型的网络应用程序。我知道before_filter但考虑到我希望应用程序进入的方向,这似乎很麻烦。最终从任何
我在我的项目中添加了一个系统来重置用户密码并通过电子邮件将密码发送给他,以防他忘记密码。昨天它运行良好(当我实现它时)。当我今天尝试启动服务器时,出现以下错误。=>BootingWEBrick=>Rails3.2.1applicationstartingindevelopmentonhttp://0.0.0.0:3000=>Callwith-dtodetach=>Ctrl-CtoshutdownserverExiting/Users/vinayshenoy/.rvm/gems/ruby-1.9.3-p0/gems/actionmailer-3.2.1/lib/action_mailer
刚入门rails,开始慢慢理解。有人可以解释或给我一些关于在application_controller中编码的好处或时间和原因的想法吗?有哪些用例。您如何为Rails应用程序使用应用程序Controller?我不想在那里放太多代码,因为据我了解,每个请求都会调用此Controller。这是真的? 最佳答案 ApplicationController实际上是您应用程序中的每个其他Controller都将从中继承的类(尽管这不是强制性的)。我同意不要用太多代码弄乱它并保持干净整洁的态度,尽管在某些情况下ApplicationContr
我想向我的Controller传递一个参数,它是一个简单的复选框,但我不知道如何在模型的form_for中引入它,这是我的观点:{:id=>'go_finance'}do|f|%>Transferirde:para:Entrada:"input",:placeholder=>"Quantofoiganho?"%>Saída:"output",:placeholder=>"Quantofoigasto?"%>Nota:我想做一个额外的复选框,但我该怎么做,模型中没有一个对象,而是一个要检查的对象,以便在Controller中创建一个ifelse,如果没有检查,请帮助我,非常感谢,谢谢
我注意到像bundler这样的项目在每个specfile中执行requirespec_helper我还注意到rspec使用选项--require,它允许您在引导rspec时要求一个文件。您还可以将其添加到.rspec文件中,因此只要您运行不带参数的rspec就会添加它。使用上述方法有什么缺点可以解释为什么像bundler这样的项目选择在每个规范文件中都需要spec_helper吗? 最佳答案 我不在Bundler上工作,所以我不能直接谈论他们的做法。并非所有项目都checkin.rspec文件。原因是这个文件,通常按照当前的惯例,只
我正在使用active_admin,我在Rails3应用程序的应用程序中有一个目录管理,其中包含模型和页面的声明。时不时地我也有一个类,当那个类有一个常量时,就像这样:classFooBAR="bar"end然后,我在每个必须在我的Rails应用程序中重新加载一些代码的请求中收到此警告:/Users/pupeno/helloworld/app/admin/billing.rb:12:warning:alreadyinitializedconstantBAR知道发生了什么以及如何避免这些警告吗? 最佳答案 在纯Ruby中:classA