Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Android手机运行闪退 #8

Open
Dreamskya opened this issue Aug 18, 2020 · 4 comments
Open

Android手机运行闪退 #8

Dreamskya opened this issue Aug 18, 2020 · 4 comments

Comments

@Dreamskya
Copy link

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

@cmdbug
Copy link
Owner

cmdbug commented Aug 18, 2020

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

@Dreamskya
Copy link
Author

小米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
Copy link
Author

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

@cmdbug
Copy link
Owner

cmdbug commented Aug 18, 2020

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants