(TensorflowLite/Android) 无法实例化 activity ComponentInfo
(TensorflowLite/Android) Unable to instantiate activity ComponentInfo
我在 android studio 上 运行 Tensorflow 示例 (https://github.com/tensorflow/examples/blob/master/lite/examples/image_classification/android/README.md),但出现以下错误。
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
如果您从 github 下载项目,它有许多您不需要的子文件夹,其中一些您不应该使用(例如 ios 相关文件夹)。如果你想要 运行 android 版本,那么在 Android studio 中尝试打开项目而不是从主文件夹,而是从以下子路径:
examples-master/lite/examples/image_classification/android
然后让 gradle 下载所有依赖项并构建您的项目 (Build -> Make Project
)。如果您在尝试 运行 时遇到 "Select SDK" 错误,只需执行 File-> Sync project with gradle files
之后您就可以 运行 了!
我在 android studio 上 运行 Tensorflow 示例 (https://github.com/tensorflow/examples/blob/master/lite/examples/image_classification/android/README.md),但出现以下错误。
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
如果您从 github 下载项目,它有许多您不需要的子文件夹,其中一些您不应该使用(例如 ios 相关文件夹)。如果你想要 运行 android 版本,那么在 Android studio 中尝试打开项目而不是从主文件夹,而是从以下子路径:
examples-master/lite/examples/image_classification/android
然后让 gradle 下载所有依赖项并构建您的项目 (Build -> Make Project
)。如果您在尝试 运行 时遇到 "Select SDK" 错误,只需执行 File-> Sync project with gradle files
之后您就可以 运行 了!