我目前正在Xamarin.Forms项目中编写插件来使用Zendesk支持SDK(https://developer.zendesk.com/embeddables/docs/android_support_sdk/nutshell)。我用一个小的Activity / UI编写并测试了Android Studio中的插件。现在,我创建了一个绑定项目,以在Xamarin中使用.aar文件。如果我启动该应用程序并访问第一个功能,则会收到错误代码。
我已经尝试将gradle下载的.jar文件添加到〜/ .gradle / caches / modules-2 / files-2.1的绑定项目中,以及删除传递给插件的所有参数。我所做的最后一个测试是更改绑定项目的生成操作,当前,根据Xamarin文档的建议,.aar的生成操作设置为“ LibraryProjectZip”。
Java
import android.app.Activity;
import android.util.Log;
import java.util.List;
import java.util.Locale;
import zendesk.commonui.UiConfig;
import zendesk.core.AnonymousIdentity;
import zendesk.core.Identity;
import zendesk.core.Zendesk;
import zendesk.support.Support;
import zendesk.support.guide.HelpCenterActivity;
import zendesk.support.guide.ViewArticleActivity;
import zendesk.support.request.RequestActivity;
public void Init () {
try {
// Return if Zendesk is already initialized
if (IsInitialized()) return;
Zendesk.INSTANCE.init (MainActivity, zendeskCredentials.zendeskUrl,zendeskCredentials.applicationId,zendeskCredentials.oauthClientId);
Support.INSTANCE.init(Zendesk.INSTANCE);
Identity identity = new AnonymousIdentity.Builder().withNameIdentifier(zendeskCredentials.userName).withEmailIdentifier(zendeskCredentials.userEmail).build();
Zendesk.INSTANCE.setIdentity(identity);
Support.INSTANCE.setHelpCenterLocaleOverride(locale);
}
catch (Exception e) {
Log.d("EXCEPTION: ", e.getMessage());
}
}
____________
Xamarin
public void Init() {
ZendeskPlugin.Instance.Init();
}
这就是我得到的:
Java.Lang.NoClassDefFoundError:无法解决以下问题:Lzendesk / core / Zendesk; ---> Java.Lang.ClassNotFoundException:在路径:DexPathList [[zip file“ /system/framework/org.apache.http.legacy.boot.jar”,zip]中找不到类“ zendesk.core.Zendesk”文件“ /data/app/de.foo.foo-25GgMgJo-hI1Hnw8TCqT-A==/base.apk"],nativeLibraryDirectories=[/data/app/de.foo.foo-25GgMgJo-hI1Hnw8TCqT-A==/lib /arm64、/data/app/de.foo.foo-25GgMgJo-hI1Hnw8TCqT-A==/base.apk!/lib/arm64-v8a、/system/lib64、/system/vendor/lib64]]] ---内部异常堆栈跟踪的结尾--- 在<09821b4f44794452b7d6c054ac9447f5>:0中的Java.Interop.JniEnvironment + InstanceMethods.CallVoidMethod(Java.Interop.JniObjectReference实例,Java.Interop.JniMethodInfo方法,Java.Interop.JniArgumentValue * args)中[0x00069] 在<09821b4f44794452b7d6c054ac9447f5>:0
中的Java.Interop.JniPeerMembers + JniInstanceMethods.InvokeVirtualVoidMethod(System.String编码的成员,Java.Interop.IJavaPeerable自我,Java.Interop.JniArgumentValue *参数)[0x0002a]处...
答案 0 :(得分:0)
我知道回答这个问题为时已晚,但是我希望这将有助于其他人解决他们的问题。
请尝试在您的Xamarin Android项目中安装Xamarin.Kotlin.StdLib
。安装Kotlin软件包对我有用,因为我正在使用包含Kotlin代码的.aar
文件。
Install-Package Xamarin.Kotlin.StdLib -Version 1.3.50.1