Android 4.4.2上的TensorFlow - 应用程序启动时的“致命异常”

时间:2017-05-22 20:24:24

标签: android tensorflow

我一直试图在我的Galaxy S3(Android 4.4.2,API 19)上运行this TensorFlow project

我已成功在笔记本电脑上运行python代码,没有任何问题。

为了让项目编译并复制到我的手机,我必须在Android Studio中将Min Sdk版本设置为API 19。我通过“项目结构”对话框完成了这项工作,而不是试图弄乱Gradle代码。

当我进行一次更改时,项目只会在Android Studio中编译很少的警告,并且生成的APK会在手机上复制并安装。

但是,每次我尝试运行应用程序时,它都会立即崩溃,在调试控制台中生成此代码:

709-709/org.tensorflow.demo E/AndroidRuntime: FATAL EXCEPTION: main
Process: org.tensorflow.demo, PID: 709
java.lang.NoClassDefFoundError: android.util.Size
at org.tensorflow.demo.ClassifierActivity.<clinit>(ClassifierActivity.java:74)
at java.lang.Class.newInstanceImpl(Native Method)
at java.lang.Class.newInstance(Class.java:1208)
at android.app.Instrumentation.newActivity(Instrumentation.java:1067)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2244)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2386)
at android.app.ActivityThread.access$900(ActivityThread.java:169)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1277)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5476)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1283)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099)
at dalvik.system.NativeStart.main(Native Method)

一些GitHub线程告诉我这可能与各种版本之间手机摄像头API的差异有关,但我似乎无法确定问题。有人知道解决方法吗?

1 个答案:

答案 0 :(得分:0)

从错误消息中看来它似乎是抱怨android.util.Size来自the docs for that,似乎这个类是在API版本21中引入的,这解释了为什么它不起作用API级别19.

您似乎正在使用TensorFlow存储库中的Android Demo。如果是,according to the README,则需要API 21或更高版本,以便演示无法在手机的当前设置中使用。