我正在尝试将Azure连接到Android工作室。我已经按照Azure上的教程创建了一个移动服务。然后它给了我一些代码添加到我的应用程序,以便它们连接。但是,代码抛出了一个我无法弄清楚的异常。我从头到脚搜索了互联网,找不到答案。我认为它与依赖项或库的导入方式有关(通过将jar文件粘贴到libs文件夹并添加依赖项)。
引发异常的代码(由Azure提供):
try {
mClient = new MobileServiceClient(
"https://atm.azure-mobile.net/",
"JWjetFMUVaAXzHmqDVqhkkRhTGGjeW70",
this
);
Item item = new Item();
item.Text = "Awesome item";
mClient.getTable(Item.class).insert(item, new TableOperationCallback<Item>() {
public void onCompleted(Item entity, Exception exception, ServiceFilterResponse response) {
if (exception == null) {
// Insert succeeded
Toast.makeText(context, "WOOHOO", Toast.LENGTH_LONG).show();
} else {
// Insert failed
Toast.makeText(context, "FAILED", Toast.LENGTH_LONG).show();
}
}
});
}
catch(MalformedURLException d) {
}
例外:
java.lang.NoClassDefFoundError: com.google.gson.GsonBuilder
at com.microsoft.windowsazure.mobileservices.MobileServiceClient.createMobileServiceGsonBuilder(MobileServiceClient.java:192)
at com.microsoft.windowsazure.mobileservices.MobileServiceClient.<init>(MobileServiceClient.java:179)
at com.microsoft.windowsazure.mobileservices.MobileServiceClient.<init>(MobileServiceClient.java:158)
at com.atmlocator.hooper.kenneth.atmlocator.HomeActivity.onCreate(HomeActivity.java:218)
at android.app.Activity.performCreate(Activity.java:5047)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1094)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2051)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2112)
at android.app.ActivityThread.access$700(ActivityThread.java:139)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1223)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4917)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:997)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:764)
at dalvik.system.NativeStart.main(Native Method)
答案 0 :(得分:1)
根据我的经验,异常&#34; NoClassDefFoundError&#34;表示您的项目缺少依赖库jar文件。在这里,你的项目错过了gson.jar文件。
您可以下载一个zip文件&#34; azuresdk-android-2.0.3.zip&#34;来自&#34; Mobile&#34; - &GT; &#34; Android安装&#34;页面https://azure.microsoft.com/en-us/downloads/。将zip文件解压缩到目录后,您可以找到&#34; gson-2.2.2.jar&#34;文件和目录中的其他依赖jar文件&#34; azuresdk-android-2.0.3 / mobileservices&#34;。
然后你可以将这些jar库文件导入到目录&#34; libs&#34;您的项目解决问题。请参阅SO线程Android Studio - Importing external Library/Jar以了解如何导入外部库/ jar。
最诚挚的问候。
答案 1 :(得分:1)
我通过更新.jar文件解决了这个问题。虽然微软的文档告诉我:
'gson:2.2.2'
此版本不起作用。相反,我下载了更新的版本:
'gson:2.3.1'
此.jar文件解决了问题