繁体   English   中英

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

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

我正在将 kotlin 库绑定到 xamarin android,在绑定并解决所有错误后,我收到一个意外错误,没有任何解释或异常原因,

Java.Lang.NoClassDefFoundError: '解析失败: 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) 在 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 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 )

我在网上寻找过类似的 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:

  1. Maven-repository下载 AndroidX.Core 库及其依赖项。
  2. 创建一个新目录并将所有下载的 JAR 文件解压缩到该目录中。
  3. 使用归档工具打开 AAR 文件,提取它们的 classes.jar 文件,并将后者的内容也放在上述目录中。
  4. 运行“jar cvf androidx.jar”。 将上述目录中的 package 所有 AndroidX 文件放在一个新的 JAR 中。
  5. 将此 JAR 作为嵌入式参考 JAR 添加到您的 Android 绑定项目中。
  6. 将您的绑定添加到 Android App 项目,并尝试构建它。 您可能会遇到一些与重复的 class 包含相关的构建错误。 从 2 中创建的目录中删除这些文件,然后重复步骤 4 和 5,直到不再存在此类错误。
  7. 创建/构建您的 NuGet。 您现在应该能够成功运行合作伙伴 SDK 中包含的代码。

暂无
暂无

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM