1

这是关于在 TomTom 设备上运行应用程序的问题,而不是在任意 Android 设备上运行的问题。

尝试启动本机相机活动时,生产设备上出现随机异常,我无法在我的开发者 TomTom 上重现该活动。这仅适用于 TomTom 设备;它不会发生在我的应用程序运行的任何其他 Android 上。

我在这里没有做任何花哨的事情,只需启动一个本机相机Activity以使用一些 URI 拍照,但它会随机使我的应用程序崩溃。我想至少一些 TomTom 开发人员应该在 TomTom 原生相机活动中遇到过这个问题。非常感谢任何解决此问题的帮助。

我的代码是这样的:

    final Intent i = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
    i.putExtra(MediaStore.EXTRA_OUTPUT, photoURI);
    i.addFlags(FLAG_GRANT_WRITE_URI_PERMISSION);

    final List<ResolveInfo> resInfoList = packageManager.queryIntentActivities(i, PackageManager.MATCH_DEFAULT_ONLY);
    for (ResolveInfo resolveInfo : resInfoList)
    {
        String packageName = resolveInfo.activityInfo.packageName;
        activity.grantUriPermission(packageName, photoURI, Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
    }

    activity.startActivityForResult(i, requestCode);

异常堆栈跟踪如下:

致命异常:java.lang.RuntimeException:Surface 已锁定在 android.view.ViewRootImpl.drawSoftware(ViewRootImpl.java:2421) 的 android.view.ViewRootImpl 的 android.view.Surface.lockCanvas(Surface.java:242)。 draw(ViewRootImpl.java:2395) at android.view.ViewRootImpl.performDraw(ViewRootImpl.java:2239) at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1872) at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java :1004) 在 android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5481) 在 android.view.Choreographer$CallbackRecord.run(Choreographer.java:749) 在 android.view.Choreographer.doCallbacks(Choreographer.java: 562) 在 android.view.Choreographer.doFrame(Choreographer.java:532) 在 android.view。Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:735) 在 android.os.Handler.handleCallback(Handler.java:730) 在 android.os.Handler.dispatchMessage(Handler.java:92) 在 android.os.Looper.loop (Looper.java:137) 在 android.app.ActivityThread.main(ActivityThread.java:5150) 在 java.lang.reflect.Method.invokeNative(Method.java) 在 java.lang.reflect.Method.invoke(Method. java:525) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:760) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:576) 在 dalvik.system.NativeStart .main(NativeStart.java)92) 在 android.os.Looper.loop(Looper.java:137) 在 android.app.ActivityThread.main(ActivityThread.java:5150) 在 java.lang.reflect.Method.invokeNative(Method.java) 在 java. lang.reflect.Method.invoke(Method.java:525) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:760) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit. java:576) 在 dalvik.system.NativeStart.main(NativeStart.java)92) 在 android.os.Looper.loop(Looper.java:137) 在 android.app.ActivityThread.main(ActivityThread.java:5150) 在 java.lang.reflect.Method.invokeNative(Method.java) 在 java. lang.reflect.Method.invoke(Method.java:525) 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:760) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit. java:576) 在 dalvik.system.NativeStart.main(NativeStart.java)main(ZygoteInit.java:576) 在 dalvik.system.NativeStart.main(NativeStart.java)main(ZygoteInit.java:576) 在 dalvik.system.NativeStart.main(NativeStart.java)

4

0 回答 0