java - 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();
}
}
}
解决方案
推荐阅读
- rust - 如何解析 Vec
在 Rust 中作为 XML 的单独行? - android - 如何制作一个可以在用户单击时输入但被禁用的文本字段?
- css - 如何在 CSS 网格中将项目居中
- node.js - 如何从 React Express 节点组件调用外部 URL?
- javascript - JavaScript setInterval:未定义函数
- solr - 将用户指定的内部版本添加到 Solr 核心?
- python - 如何在 cx_Oracle - Python 中将普通用户提升为 oracle 用户
- php - 私有身份验证算法 - 网络安全
- simple-injector - 有没有办法让 Simple Injector 只为 Transient 注册调用一次委托?
- c++ - c ++ mysql上第64位之后的随机字符