1

これは、任意の Android デバイスではなく、TomTom デバイスでアプリを実行することに関する質問です。

開発用 TomTom で再現できないネイティブ カメラ アクティビティを開始しようとすると、実稼働デバイスでランダムな例外が発生します。これは TomTom デバイスのみに固有のものです。私のアプリが実行されている他のAndroidでは発生しません。

ここでは特別なことは何もしていません。URIを使用Activityして写真を撮るためにネイティブ カメラを起動するだけですが、ランダムにアプリがクラッシュします。少なくとも一部の 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: サーフェスは、android.view.ViewRootImpl の android.view.Surface.lockCanvas(Surface.java:242) で android.view.ViewRootImpl.drawSoftware(ViewRootImpl.java:2421) で既にロックされています。 draw(ViewRootImpl.java:2395) で android.view.ViewRootImpl.performDraw(ViewRootImpl.java:2239) で android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1872) で 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) at dalvik.system.NativeStart.main(NativeStart.java)main(ZygoteInit.java:576) at dalvik.system.NativeStart.main(NativeStart.java)

4

0 に答える 0