首页 > 解决方案 > AndroidRuntime: FATAL EXCEPTION: main in android studio

问题描述

我已经阅读了很多以前的帖子,但没有一个适用于我的代码。我是深度学习和 Android Studio 的新手,我无法弄清楚问题到底出在哪里。每当我启动它时,应用程序就会崩溃。

我已经克隆了一个 git hub 存储库,我觉得这个错误可能与版本兼容性有关。该应用程序使用 Tensorflow 1.4 版进行图像字幕。

我搜索了 GatherV2,它说 GatherV2 操作在 tensorflow 2.4.1 中可用,但我不明白它为什么需要这个。GitHub代码指定了Tensorflow r1.0,我使用的是Tensorflow 1.14版本。

任何帮助将不胜感激!

这是错误:

D/AndroidRuntime: Shutting down VM
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.android.camera2basic, PID: 2878
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.android.camera2basic/com.example.android.camera2basic.CameraActivity}: org.tensorflow.TensorFlowException: Op type not registered 'GatherV2'
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3654)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3806)
    at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83)
    at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
    at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2267)
    at android.os.Handler.dispatchMessage(Handler.java:107)
    at android.os.Looper.loop(Looper.java:237)
    at android.app.ActivityThread.main(ActivityThread.java:8167)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:496)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1100)
 Caused by: org.tensorflow.TensorFlowException: Op type not registered 'GatherV2'
    at org.tensorflow.Graph.importGraphDef(Native Method)
    at org.tensorflow.Graph.importGraphDef(Graph.java:118)
    at org.tensorflow.Graph.importGraphDef(Graph.java:102)
    at org.tensorflow.contrib.android.TensorFlowInferenceInterface.load(TensorFlowInferenceInterface.java:414)
    at org.tensorflow.contrib.android.TensorFlowInferenceInterface.initializeTensorFlow(TensorFlowInferenceInterface.java:95)
    at com.example.android.camera2basic.Camera2BasicFragment.InitSession(Camera2BasicFragment.java:834)
    at com.example.android.camera2basic.Camera2BasicFragment.onViewCreated(Camera2BasicFragment.java:808)
    at android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1313)
    at android.app.FragmentManagerImpl.addAddedFragments(FragmentManager.java:2431)
    at android.app.FragmentManagerImpl.executeOpsTogether(FragmentManager.java:2210)
    at android.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManager.java:2166)
    at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:2067)
    at android.app.FragmentManagerImpl.dispatchMoveToState(FragmentManager.java:3057)
    at android.app.FragmentManagerImpl.dispatchActivityCreated(FragmentManager.java:3004)
    at android.app.FragmentController.dispatchActivityCreated(FragmentController.java:184)
    at android.app.Activity.performCreate(Activity.java:7970)
    at android.app.Activity.performCreate(Activity.java:7952)
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1307)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3629)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3806) 
    at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:83) 
    at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) 
    at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2267) 
    at android.os.Handler.dispatchMessage(Handler.java:107) 
    at android.os.Looper.loop(Looper.java:237) 
    at android.app.ActivityThread.main(ActivityThread.java:8167) 
    at java.lang.reflect.Method.invoke(Native Method) 
    at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:496) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1100) 
I/Process: Sending signal. PID: 2878 SIG: 9

这是 CameraActivity 代码文件:

package com.example.android.camera2basic;

import android.app.Activity;
import android.os.Bundle;


public class CameraActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_camera);
        if (null == savedInstanceState) {
            getFragmentManager().beginTransaction()
                    .replace(R.id.container, Camera2BasicFragment.newInstance())
                    .commit();
        }
    }

}

标签: javaandroid-studiotensorflowdeep-learning

解决方案


推荐阅读