[英]java.lang.NoClassDefFoundError: Failed resolution of: Landroidx/camera/core/impl/utils/AspectRatioUtil$CompareAspectRatiosByDistanceToTargetRatio;
I'm making a QrCode Scanner app.我正在制作 QrCode 扫描仪应用程序。
Whenever I open my app it crashes and gives NoClassDefFoundError每当我打开我的应用程序时,它就会崩溃并给出 NoClassDefFoundError
I checked the logcat and found this:-我检查了 logcat,发现了这个:-
2023-01-02 08:53:29.552 27370-27370/com.cheesypc.qrcodescanner E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.cheesypc.qrcodescanner, PID: 27370
java.lang.NoClassDefFoundError: Failed resolution of: Landroidx/camera/core/impl/utils/AspectRatioUtil$CompareAspectRatiosByDistanceToTargetRatio;
at androidx.camera.camera2.internal.SupportedSurfaceCombination.getSupportedOutputSizes(SupportedSurfaceCombination.java:468)
at androidx.camera.camera2.internal.SupportedSurfaceCombination.getSuggestedResolutions(SupportedSurfaceCombination.java:240)
at androidx.camera.camera2.internal.Camera2DeviceSurfaceManager.getSuggestedResolutions(Camera2DeviceSurfaceManager.java:197)
at androidx.camera.core.internal.CameraUseCaseAdapter.calculateSuggestedResolutions(CameraUseCaseAdapter.java:431)
at androidx.camera.core.internal.CameraUseCaseAdapter.addUseCases(CameraUseCaseAdapter.java:239)
at androidx.camera.lifecycle.LifecycleCamera.bind(LifecycleCamera.java:206)
at androidx.camera.lifecycle.LifecycleCameraRepository.bindToLifecycleCamera(LifecycleCameraRepository.java:283)
at androidx.camera.lifecycle.ProcessCameraProvider.bindToLifecycle(ProcessCameraProvider.java:538)
at androidx.camera.lifecycle.ProcessCameraProvider.bindToLifecycle(ProcessCameraProvider.java:363)
at com.cheesypc.qrcodescanner.HomeScreenKt$Scanner$1$2.invoke(HomeScreen.kt:79)
at com.cheesypc.qrcodescanner.HomeScreenKt$Scanner$1$2.invoke(HomeScreen.kt:60)
at androidx.compose.ui.viewinterop.ViewFactoryHolder.setFactory(AndroidView.android.kt:174)
at androidx.compose.ui.viewinterop.AndroidView_androidKt$AndroidView$1.invoke(AndroidView.android.kt:116)
at androidx.compose.ui.viewinterop.AndroidView_androidKt$AndroidView$1.invoke(AndroidView.android.kt:113)
at androidx.compose.ui.viewinterop.AndroidView_androidKt$AndroidView$$inlined$ComposeNode$1.invoke(Composables.kt:254)
at androidx.compose.runtime.ComposerImpl$createNode$2.invoke(Composer.kt:1537)
at androidx.compose.runtime.ComposerImpl$createNode$2.invoke(Composer.kt:1535)
at androidx.compose.runtime.ComposerImpl$recordInsert$2.invoke(Composer.kt:3395)
at androidx.compose.runtime.ComposerImpl$recordInsert$2.invoke(Composer.kt:3392)
at androidx.compose.runtime.CompositionImpl.applyChangesInLocked(Composition.kt:782)
at androidx.compose.runtime.CompositionImpl.applyChanges(Composition.kt:813)
at androidx.compose.runtime.Recomposer.composeInitial$runtime_release(Recomposer.kt:827)
at androidx.compose.runtime.CompositionImpl.setContent(Composition.kt:519)
at androidx.compose.ui.platform.WrappedComposition$setContent$1.invoke(Wrapper.android.kt:140)
at androidx.compose.ui.platform.WrappedComposition$setContent$1.invoke(Wrapper.android.kt:131)
at androidx.compose.ui.platform.AndroidComposeView.setOnViewTreeOwnersAvailable(AndroidComposeView.android.kt:1015)
at androidx.compose.ui.platform.WrappedComposition.setContent(Wrapper.android.kt:131)
at androidx.compose.ui.platform.WrappedComposition.onStateChanged(Wrapper.android.kt:182)
at androidx.lifecycle.LifecycleRegistry$ObserverWithState.dispatchEvent(LifecycleRegistry.java:360)
at androidx.lifecycle.LifecycleRegistry.addObserver(LifecycleRegistry.java:202)
at androidx.compose.ui.platform.WrappedComposition$setContent$1.invoke(Wrapper.android.kt:138)
at androidx.compose.ui.platform.WrappedComposition$setContent$1.invoke(Wrapper.android.kt:131)
at androidx.compose.ui.platform.AndroidComposeView.onAttachedToWindow(AndroidComposeView.android.kt:1102)
at android.view.View.dispatchAttachedToWindow(View.java:18359)
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:3397)
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:3404)
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:3404)
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:3404)
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:3404)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1773)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1471)
2023-01-02 08:53:29.556 27370-27370/com.cheesypc.qrcodescanner E/AndroidRuntime: at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:7211) at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1004) at android.view.Choreographer.doCallbacks(Choreographer.java:816) at android.view.Choreographer.doFrame(Choreographer.java:751) at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:990) at android.os.Handler.handleCallback(Handler.java:873) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:193) at android.app.ActivityThread.main(ActivityThread.java:6692) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493) at com. 2023-01-02 08:53:29.556 27370-27370/com.cheesypc.qrcodescanner E/AndroidRuntime: at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:7211) at android.view.Choreographer$CallbackRecord.run (Choreographer.java:1004) at android.view.Choreographer.doCallbacks(Choreographer.java:816) at android.view.Choreographer.doFrame(Choreographer.java:751) at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer. java:990) at android.os.Handler.handleCallback(Handler.java:873) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:193) at android.app.ActivityThread.main(ActivityThread.java:6692) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493) at com. android.internal.os.ZygoteInit.main(ZygoteInit.java:858) Caused by: java.lang.ClassNotFoundException: Didn't find class "androidx.camera.core.impl.utils.AspectRatioUtil$CompareAspectRatiosByDistanceToTargetRatio" on path: DexPathList[[zip file "/data/app/com.cheesypc.qrcodescanner-Bpfcr28b32Uq7ZGMUq2TGQ==/base.apk"],nativeLibraryDirectories=[/data/app/com.cheesypc.qrcodescanner-Bpfcr28b32Uq7ZGMUq2TGQ==/lib/arm64, /data/app/com.cheesypc.qrcodescanner-Bpfcr28b32Uq7ZGMUq2TGQ==/base.apk,/lib/arm64-v8a, /system/lib64.
android.internal.os.ZygoteInit.main(ZygoteInit.java:858) Caused by: java.lang.ClassNotFoundException: Didn't find class "androidx.camera.core.impl.utils.AspectRatioUtil$CompareAspectRatiosByDistanceToTargetRatio" on path: DexPathList[ [zip 文件“/data/app/com.cheesypc.qrcodescanner-Bpfcr28b32Uq7ZGMUq2TGQ==/base.apk”],nativeLibraryDirectories=[/data/app/com.cheesypc.qrcodescanner-Bpfcr28b32Uq7ZGMUq2TGQ==/lib/arm64,/data/ app/com.cheesypc.qrcodescanner-Bpfcr28b32Uq7ZGMUq2TGQ==/base.apk,/lib/arm64-v8a,/system/lib64。 /vendor/lib64]] at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader:java.134) at java.lang.ClassLoader.loadClass(ClassLoader:java.379) at java.lang.ClassLoader.loadClass(ClassLoader:java.312)... 53 more
/vendor/lib64]] at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader:java.134) at java.lang.ClassLoader.loadClass(ClassLoader:java.379) at java.lang.ClassLoader.loadClass(ClassLoader:java.312)... 53 more
and the error showing on AndroidView() and try{ cameraProviderFuture.get().bindToLifecycle }以及AndroidView()上显示的错误并尝试{ cameraProviderFuture.get().bindToLifecycle }
AndroidView(
factory = { context ->
val previewView = PreviewView(context)
val preview = Preview.Builder().build()
val selector = CameraSelector.Builder()
.requireLensFacing(CameraSelector.LENS_FACING_BACK)
.build()
preview.setSurfaceProvider(previewView.surfaceProvider)
val imageAnalysis = ImageAnalysis.Builder()
.setTargetResolution(Size(previewView.width, previewView.height))
.setBackpressureStrategy(STRATEGY_KEEP_ONLY_LATEST)
.build()
imageAnalysis.setAnalyzer(
ContextCompat.getMainExecutor(context),
QrCodeAnalyser { result ->
code = result
}
)
try {
cameraProviderFuture.get().bindToLifecycle(
lifecycleOwner,
selector,
preview,
imageAnalysis
)
} catch (e: Exception) {
e.printStackTrace()
}
previewView
}, modifier = Modifier.weight(1f)
)
I also get that error when using this dependency使用此依赖项时我也会收到该错误
implementation "androidx.camera:camera-camera2:1.2.0"
implementation "androidx.camera:camera-extensions:1.2.0"
implementation "androidx.camera:camera-lifecycle:1.2.0"
implementation "androidx.camera:camera-view:1.3.0-alpha02"
it turns out I have to equate all versions, to 1.2.0.事实证明我必须将所有版本等同于 1.2.0。 After that everything worked
之后一切正常
I have had the same issue, you must take into account that all the libraries are in the same stable version, the last one that the documentation indicates is 1.2.0, as you can see in the following image:我遇到了同样的问题,您必须考虑到所有库都在同一个稳定版本中,文档指示的最后一个是 1.2.0,如下图所示:
So in the gradle you should define the dependencies as follows:所以在 gradle 你应该定义依赖如下:
implementation("androidx.camera:camera-camera2:1.2.0")
implementation("androidx.camera:camera-extensions:1.2.0")
implementation("androidx.camera:camera-lifecycle:1.2.0")
implementation("androidx.camera:camera-view:1.2.0")
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.