簡體   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