使用 CameraX 库 android 时崩溃:java.lang.ClassNotFoundException

Ana*_*nth 5 android android-jetpack androidx android-camerax

我正在使用新的 Jetpack 库 CameraX 制作一个简单的相机应用程序。\n只要我通过添加依赖项来启动应用程序,它就会崩溃。

\n\n

依赖项:

\n\n
implementation "androidx.camera:camera-core:1.0.0-alpha06"\nimplementation "androidx.camera:camera-camera2:1.0.0-alpha06"\n
Run Code Online (Sandbox Code Playgroud)\n\n

崩溃日志:

\n\n
2019-11-28 16:16:45.828 26428-26428/? E/AndroidRuntime: FATAL EXCEPTION: main\nProcess: com.ananth.camerax, PID: 26428\njava.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.ananth.camerax-5fK5oVGKPPgZn_ITpYwEsA==/base.apk"],nativeLibraryDirectories=[/data/app/com.ananth.camerax-5fK5oVGKPPgZn_ITpYwEsA==/lib/arm64, /system/lib64, /system/vendor/lib64]]\n    at android.app.ActivityThread.installProvider(ActivityThread.java:6444)\n    at android.app.ActivityThread.installContentProviders(ActivityThread.java:5946)\n    at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5858)\n    at android.app.ActivityThread.-wrap1(Unknown Source:0)\n    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1690)\n    at android.os.Handler.dispatchMessage(Handler.java:105)\n    at android.os.Looper.loop(Looper.java:173)\n    at android.app.ActivityThread.main(ActivityThread.java:6698)\n    at java.lang.reflect.Method.invoke(Native Method)\n    at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)\n    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:782)\n Caused by: java.lang.ClassNotFoundException: Didn\'t find class "androidx.camera.camera2.impl.Camera2Initializer" on path: DexPathList[[zip file "/data/app/com.ananth.camerax-5fK5oVGKPPgZn_ITpYwEsA==/base.apk"],nativeLibraryDirectories=[/data/app/com.ananth.camerax-5fK5oVGKPPgZn_ITpYwEsA==/lib/arm64, /system/lib64, /system/vendor/lib64]]\n    at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:93)\n    at java.lang.ClassLoader.loadClass(ClassLoader.java:379)\n    at java.lang.ClassLoader.loadClass(ClassLoader.java:312)\n    at android.app.ActivityThread.installProvider(ActivityThread.java:6420)\n    at android.app.ActivityThread.installContentProviders(ActivityThread.java:5946)\xc2\xa0\n    at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5858)\xc2\xa0\n    at android.app.ActivityThread.-wrap1(Unknown Source:0)\xc2\xa0\n    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1690)\xc2\xa0\n    at android.os.Handler.dispatchMessage(Handler.java:105)\xc2\xa0\n    at android.os.Looper.loop(Looper.java:173)\xc2\xa0\n    at android.app.ActivityThread.main(ActivityThread.java:6698)\xc2\xa0\n    at java.lang.reflect.Method.invoke(Native Method)\xc2\xa0\n    at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)\xc2\xa0\n    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:782)\xc2\xa0\n    Suppressed: java.io.IOException: Failed to open dex files from /data/app/com.ananth.camerax-5fK5oVGKPPgZn_ITpYwEsA==/base.apk because: Failure to verify dex file \'/data/app/com.ananth.camerax-5fK5oVGKPPgZn_ITpYwEsA==/base.apk\': Bad method handle type 7\n    at dalvik.system.DexFile.openDexFileNative(Native Method)\n    at dalvik.system.DexFile.openDexFile(DexFile.java:353)\n    at dalvik.system.DexFile.<init>(DexFile.java:100)\n    at dalvik.system.DexFile.<init>(DexFile.java:74)\n    at dalvik.system.DexPathList.loadDexFile(DexPathList.java:374)\n    at dalvik.system.DexPathList.makeDexElements(DexPathList.java:337)\n    at dalvik.system.DexPathList.<init>(DexPathList.java:157)\n    at dalvik.system.BaseDexClassLoader.<init>(BaseDexClassLoader.java:65)\n    at dalvik.system.PathClassLoader.<init>(PathClassLoader.java:64)\n    at com.android.internal.os.PathClassLoaderFactory.createClassLoader(PathClassLoaderFactory.java:43)\n    at android.app.ApplicationLoaders.getClassLoader(ApplicationLoaders.java:69)\n    at android.app.ApplicationLoaders.getClassLoader(ApplicationLoaders.java:36)\n    at android.app.LoadedApk.createOrUpdateClassLoaderLocked(LoadedApk.java:681)\n    at android.app.LoadedApk.getClassLoader(LoadedApk.java:714)\n    at android.app.LoadedApk.getResources(LoadedApk.java:941)\n    at android.app.ContextImpl.createAppContext(ContextImpl.java:2254)\n    at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5755)\n            ... 8 more\n
Run Code Online (Sandbox Code Playgroud)\n\n

我在 SO 上找不到任何答案。

\n

Вла*_*нин 6

错误:

// CameraX
def camerax_version = "1.0.0-beta07"
implementation "androidx.camera:camera-camera2:$camerax_version"
implementation "androidx.camera:camera-lifecycle:$camerax_version"
implementation "androidx.camera:camera-view:1.0.0-alpha20"
Run Code Online (Sandbox Code Playgroud)

解决方案:

// CameraX
def camerax_version = '1.0.0-rc01'
implementation "androidx.camera:camera-camera2:$camerax_version"
implementation "androidx.camera:camera-lifecycle:$camerax_version"
implementation "androidx.camera:camera-view:1.0.0-alpha20"
Run Code Online (Sandbox Code Playgroud)


小智 4

尝试将其添加到您的应用程序build.gradle级别android { }

 compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
Run Code Online (Sandbox Code Playgroud)