YOLOv5_NCNN
YOLOv5_NCNN copied to clipboard
Android手机运行闪退
您好,作者,尝试过几台Android手机,运行就闪退了。分别是红米note4,和小米6,Android系统是6.0以上的。权限有手动打开。
需要安卓8.0(好像7.0也行)。有什么具体错误信息嘛
小米5,Android8.0.0
Process: com.wzt.yolov5, PID: 22315
java.lang.RuntimeException: Unable to get provider androidx.camera.camera2.impl.Camera2Initializer: java.lang.ClassNotFoundException: Didn't find class "androidx.camera.camera2.impl.Camera2Initializer" on path: DexPathList[[zip file "/data/app/com.wzt.yolov5-eH_0L-j9m8i_hBb-AEIsRQ==/base.apk"],nativeLibraryDirectories=[/data/app/com.wzt.yolov5-eH_0L-j9m8i_hBb-AEIsRQ==/lib/arm, /data/app/com.wzt.yolov5-eH_0L-j9m8i_hBb-AEIsRQ==/base.apk!/lib/armeabi-v7a, /system/lib, /system/vendor/lib]]
at android.app.ActivityThread.installProvider(ActivityThread.java:6444)
at android.app.ActivityThread.installContentProviders(ActivityThread.java:5946)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5858)
at android.app.ActivityThread.-wrap1(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1690)
at android.os.Handler.dispatchMessage(Handler.java:105)
at android.os.Looper.loop(Looper.java:173)
at android.app.ActivityThread.main(ActivityThread.java:6698)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:782)
Caused by: java.lang.ClassNotFoundException: Didn't find class "androidx.camera.camera2.impl.Camera2Initializer" on path: DexPathList[[zip file "/data/app/com.wzt.yolov5-eH_0L-j9m8i_hBb-AEIsRQ==/base.apk"],nativeLibraryDirectories=[/data/app/com.wzt.yolov5-eH_0L-j9m8i_hBb-AEIsRQ==/lib/arm, /data/app/com.wzt.yolov5-eH_0L-j9m8i_hBb-AEIsRQ==/base.apk!/lib/armeabi-v7a, /system/lib, /system/vendor/lib]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:93)
at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
at android.app.ActivityThread.installProvider(ActivityThread.java:6420)
at android.app.ActivityThread.installContentProviders(ActivityThread.java:5946)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5858)
at android.app.ActivityThread.-wrap1(Unknown Source:0)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1690)
at android.os.Handler.dispatchMessage(Handler.java:105)
at android.os.Looper.loop(Looper.java:173)
at android.app.ActivityThread.main(ActivityThread.java:6698)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:782)
Suppressed: java.io.IOException: Failed to open dex files from /data/app/com.wzt.yolov5-eH_0L-j9m8i_hBb-AEIsRQ==/base.apk because: Failure to verify dex file '/data/app/com.wzt.yolov5-eH_0L-j9m8i_hBb-AEIsRQ==/base.apk': Bad method handle type 7
at dalvik.system.DexFile.openDexFileNative(Native Method)
at dalvik.system.DexFile.openDexFile(DexFile.java:353)
at dalvik.system.DexFile.
已解决问题,上面这个错误java.lang.RuntimeException: Unable to get provider androidx.camera.camera2.impl.Camera2Initializer 需要在build.gradle 下,把def camerax_version = "1.0.0-alpha05"改成def camerax_version = "1.0.0-alpha04" 另个地方需要注意的是,OpenCV的so调用。在build.gradle下添加 sourceSets.main { jniLibs.srcDir 'libs' }
repositories {
mavenCentral()
jcenter()
flatDir { dirs 'libs' }
}
且在main下添加jniLib把OpenCV的so添加进来,就可以正常使用了
谢谢,为什么我这没问题...