首页 > 解决方案 > (TensorflowLite/Android) Unable to instantiate activity ComponentInfo

问题描述

I run a Tensorflow example (https://github.com/tensorflow/examples/blob/master/lite/examples/image_classification/android/README.md) on android studio and I get the following error.

E/AndroidRuntime: FATAL EXCEPTION: main Process: org.tensorflow.lite.examples.classification, PID: 18855 java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{org.tensorflow.lite.examples.classification/org.tensorflow.lite.examples.classification.ClassifierActivity}: java.lang.ClassNotFoundException: Didn't find class "org.tensorflow.lite.examples.classification.ClassifierActivity" on path: DexPathList[[zip file "/data/app/org.tensorflow.lite.examples.classification-1/base.apk"],nativeLibraryDirectories=[/data/app/org.tensorflow.lite.examples.classification-1/lib/arm64, /data/app/org.tensorflow.lite.examples.classification-1/base.apk!/lib/arm64-v8a, /system/lib64, /vendor/lib64]] at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2625) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2784) at android.app.ActivityThread.-wrap12(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1523) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:163) at android.app.ActivityThread.main(ActivityThread.java:6238) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:933) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:823) Caused by: java.lang.ClassNotFoundException: Didn't find class "org.tensorflow.lite.examples.classification.ClassifierActivity" on path: DexPathList[[zip file "/data/app/org.tensorflow.lite.examples.classification-1/base.apk"],nativeLibraryDirectories=[/data/app/org.tensorflow.lite.examples.classification-1/lib/arm64, /data/app/org.tensorflow.lite.examples.classification-1/base.apk!/lib/arm64-v8a, /system/lib64, /vendor/lib64]] at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56) at java.lang.ClassLoader.loadClass(ClassLoader.java:380) at java.lang.ClassLoader.loadClass(ClassLoader.java:312) at android.app.Instrumentation.newActivity(Instrumentation.java:1079) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2615) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2784) at android.app.ActivityThread.-wrap12(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1523) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:163) at android.app.ActivityThread.main(ActivityThread.java:6238) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:933) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:823) I/Process: Sending signal. PID: 18855 SIG: 9

标签: javaandroidclasstensorflow-lite

解决方案


If you download the project from github it has many subfolders that you don't need and some of them that you shouldn't use (eg. ios related folders). If you want to run the android version then in Android studio try to open the project not from the master folder, but from the following subpath:

examples-master/lite/examples/image_classification/android

then let gradle download all dependencies and build your project (Build -> Make Project). If you're getting a "Select SDK" error when you're trying to run it, just do a File-> Sync project with gradle files and you should be able to run it just fine after that!


推荐阅读