YOLOv5_NCNN icon indicating copy to clipboard operation
YOLOv5_NCNN copied to clipboard

Android手机运行闪退

Open Dreamskya opened this issue 5 years ago • 4 comments

您好,作者,尝试过几台Android手机,运行就闪退了。分别是红米note4,和小米6,Android系统是6.0以上的。权限有手动打开。

Dreamskya avatar Aug 18 '20 10:08 Dreamskya

需要安卓8.0(好像7.0也行)。有什么具体错误信息嘛

cmdbug avatar Aug 18 '20 10:08 cmdbug

小米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.(DexFile.java:100) at dalvik.system.DexFile.(DexFile.java:74) at dalvik.system.DexPathList.loadDexFile(DexPathList.java:374) at dalvik.system.DexPathList.makeDexElements(DexPathList.java:337) at dalvik.system.DexPathList.(DexPathList.java:157) at dalvik.system.BaseDexClassLoader.(BaseDexClassLoader.java:65) at dalvik.system.PathClassLoader.(PathClassLoader.java:64) at com.android.internal.os.PathClassLoaderFactory.createClassLoader(PathClassLoaderFactory.java:43) at android.app.ApplicationLoaders.getClassLoader(ApplicationLoaders.java:69) at android.app.ApplicationLoaders.getClassLoader(ApplicationLoaders.java:36) at android.app.LoadedApk.createOrUpdateClassLoaderLocked(LoadedApk.java:681) at android.app.LoadedApk.getClassLoader(LoadedApk.java:714) at android.app.LoadedApk.getResources(LoadedApk.java:941) at android.app.ContextImpl.createAppContext(ContextImpl.java:2254) at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5755) ... 8 more

Dreamskya avatar Aug 18 '20 10:08 Dreamskya

已解决问题,上面这个错误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添加进来,就可以正常使用了

Dreamskya avatar Aug 18 '20 12:08 Dreamskya

谢谢,为什么我这没问题...

cmdbug avatar Aug 18 '20 23:08 cmdbug