简体   繁体   English

Xamarin.Android 绑定 Java.Lang.NoClassDefFoundError: '解析失败: Landroidx/viewbinding/ViewBinding;'

[英]Xamarin.Android binding Java.Lang.NoClassDefFoundError: 'Failed resolution of: Landroidx/viewbinding/ViewBinding;'

I'm binding a kotlin library to xamarin android, and after binding and resolving all the errors, I get an unexpected error with no explanation or cause for the exception,我正在将 kotlin 库绑定到 xamarin android,在绑定并解决所有错误后,我收到一个意外错误,没有任何解释或异常原因,

Java.Lang.NoClassDefFoundError: 'Failed resolution of: Landroidx/viewbinding/ViewBinding;' Java.Lang.NoClassDefFoundError: '解析失败: Landroidx/viewbinding/ViewBinding;'

Here is the stacktrace I get:这是我得到的堆栈跟踪:

MainActivity.cs:40 at Android.App.Activity.n_OnCreate_Landroid_os_Bundle_ (System.IntPtr jnienv, System.IntPtr native__this, System.IntPtr native_savedInstanceState) [0x00011] in <4ccdb3137d974856b786e1aeebbfbab6>:0 at (wrapper dynamic-method) Android.Runtime.DynamicMethodNameCounter.8(intptr,intptr,intptr) --- End of managed Java.Lang.NoClassDefFoundError stack trace --- java.lang.NoClassDefFoundError: Failed resolution of: Landroidx/viewbinding/ViewBinding; MainActivity.cs:40 at Android.App.Activity.n_OnCreate_Landroid_os_Bundle_ (System.IntPtr jnienv, System.IntPtr native__this, System.IntPtr native_savedInstanceState) [0x00011] in <4ccdb3137d974856b786e1aeebbfbab6>:0 at (wrapper dynamic-method) Android.Runtime.DynamicMethodNameCounter .8(intptr,intptr,intptr) --- 托管 Java.Lang.NoClassDefFoundError 堆栈跟踪结束 --- java.lang.NoClassDefFoundError:解析失败:Landroidx/viewbinding/ViewBinding; at crc6473617f77d52b50b9.MainActivity.n_onCreate(Native Method) at crc6473617f77d52b50b9.MainActivity.onCreate(MainActivity.java:39) at android.app.Activity.performCreate(Activity.java:7136) at android.app.Activity.performCreate(Activity.java:7127) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1271) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2893) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3048) at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78) at android.app.servertransacti at crc6473617f77d52b50b9.MainActivity.n_onCreate(Native Method) at crc6473617f77d52b50b9.MainActivity.onCreate(MainActivity.java:39) at android.app.Activity.performCreate(Activity.java:7136) at android.app.Activity.performCreate(Activity.java :7127) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1271) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2893) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3048) at android .app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78) 在 android.app.servertransacti on.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1808) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loop(Looper.java:193) at android.app.ActivityThread.main(ActivityThread.java:6669) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493) at com.ZC on.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1808) at android.os .Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loop(Looper.java:193) at android.app.ActivityThread.main(ActivityThread.java:6669) at java.lang.reflect.Method. invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493) at com.ZC 31B32364CE19CA8FCD150A417ECCE58Z.internal.os.ZygoteInit.main(ZygoteInit.java:858) Caused by: java.lang.ClassNotFoundException: Didn't find class "androidx.viewbinding.ViewBinding" on path: DexPathList[[zip file "/data/app/com.companyname.stripepaymentdemo-oGbK81Ux2TUQ5Jelqfi7GQ==/base.apk"],nativeLibraryDirectories=[/data/app/com.companyname.stripepaymentdemo-oGbK81Ux2TUQ5Jelqfi7GQ==/lib/x86, /data/app/com.companyname.stripepaymentdemo-oGbK81Ux2TUQ5Jelqfi7GQ==/base.apk,/lib/x86. 31B32364CE19CA8FCD150A417ECCE58Z.internal.os.ZygoteInit.main(ZygoteInit.java:858) Caused by: java.lang.ClassNotFoundException: Didn't find class "androidx.viewbinding.ViewBinding" on path: DexPathList[[zip file "/data/app /com.companyname.stripepaymentdemo-oGbK81Ux2TUQ5Jelqfi7GQ==/base.apk"],nativeLibraryDirectories=[/data/app/com.companyname.stripepaymentdemo-oGbK81Ux2TUQ5Jelqfi7GQ==/lib/x86, /data/app/com.companyname.stripepaymentdemo- oGbK81Ux2TUQ5Jelqfi7GQ==/base.apk,/lib/x86。 /system/lib]] at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader:java.134) at java.lang.ClassLoader.loadClass(ClassLoader:java.379) at java.lang.ClassLoader.loadClass(ClassLoader:java:312) /system/lib]] at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader:java.134) at java.lang.ClassLoader.loadClass(ClassLoader:java.379) at java.lang.ClassLoader.loadClass(ClassLoader:java:312 )

I've looked online for similar xamarin android issues I'm yet to find one Please can someone help?我在网上寻找过类似的 xamarin android 问题 我还没有找到 有人可以帮忙吗?

Based on the answer found here , (credit to https://github.com/AlexanderMelchers ) we followed these steps and were able to get the Stripe Android SDK (which depends on AndroidX) working in Xamarin Forms: Based on the answer found here , (credit to https://github.com/AlexanderMelchers ) we followed these steps and were able to get the Stripe Android SDK (which depends on AndroidX) working in Xamarin Forms:

  1. Download the AndroidX.Core library and its dependencies from the Maven-repository .Maven-repository下载 AndroidX.Core 库及其依赖项。
  2. Create a new directory and unpack all downloaded JAR-files into that directory.创建一个新目录并将所有下载的 JAR 文件解压缩到该目录中。
  3. Open the AAR-files with an archiver-tool, extract their classes.jar-files, and place the contents of the latter in the above directory as well.使用归档工具打开 AAR 文件,提取它们的 classes.jar 文件,并将后者的内容也放在上述目录中。
  4. Run "jar cvf androidx.jar."运行“jar cvf androidx.jar”。 within the aforementioned directory to package all AndroidX-files together in a new JAR.将上述目录中的 package 所有 AndroidX 文件放在一个新的 JAR 中。
  5. Add this JAR to your Android binding-project as an embedded reference JAR.将此 JAR 作为嵌入式参考 JAR 添加到您的 Android 绑定项目中。
  6. Add your binding to an Android App project, and try to build it.将您的绑定添加到 Android App 项目,并尝试构建它。 You'll probably get some build errors related to duplicate class inclusions.您可能会遇到一些与重复的 class 包含相关的构建错误。 Remove these files from the directory created in 2 and repeat steps 4 & 5 until there are no such errors left.从 2 中创建的目录中删除这些文件,然后重复步骤 4 和 5,直到不再存在此类错误。
  7. Create/build your NuGet.创建/构建您的 NuGet。 You should now be able to successfully run the code contained in the partner SDK.您现在应该能够成功运行合作伙伴 SDK 中包含的代码。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 如何修复 Xamarin.Android 绑定项目 (.aar) 中的“Java.Lang.NoClassDefFoundError” - How to fix "Java.Lang.NoClassDefFoundError" in a Xamarin.Android Binding Project (.aar) Xamarin Android 原生绑定 Java.Lang.NoClassDefFoundError: 'Failed resolution of: [Lkotlin/reflect/KProperty - Xamarin Android Native bindings Java.Lang.NoClassDefFoundError: 'Failed resolution of: [Lkotlin/reflect/KProperty;' java.lang.NoClassDefFoundError Android Studio Unity - java.lang.NoClassDefFoundError Android Studio Unity Java.Lang.NoClassDefFoundError:超时超过了获取异常详细信息Xamarin Android - Java.Lang.NoClassDefFoundError: Timeout exceeded getting exception details Xamarin Android Xamarin Forms错误:Java.Lang.NoClassDefFoundError:android.support.graphics.drawable.VectorDrawableCompat - Xamarin Forms error: Java.Lang.NoClassDefFoundError: android.support.graphics.drawable.VectorDrawableCompat Java.Lang.NoClassDefFoundError android.arch.core.internal.FastSafeIterableMap - Java.Lang.NoClassDefFoundError android.arch.core.internal.FastSafeIterableMap Mixpanel绑定上的java.lang.NoClassDefFoundError - java.lang.NoClassDefFoundError on Mixpanel bindings 扩展DataMediaSource时发生Java.Lang.NoClassDefFoundError - Java.Lang.NoClassDefFoundError on extending DataMediaSource Xamarin.Android 中的 Android 数据绑定库 - Android Data Binding Library in Xamarin.Android Xamarin.Android JmDNS绑定问题 - Xamarin.Android JmDNS binding issues
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM