Api网关Android SDK NoClassDefFoundError
我们希望在我们的应用程序中实现AWS API网关生成的Android SDK 当我们尝试构建客户端类时,会出现以下错误:Api网关Android SDK NoClassDefFoundError,android,amazon-web-services,aws-sdk,aws-api-gateway,Android,Amazon Web Services,Aws Sdk,Aws Api Gateway,我们希望在我们的应用程序中实现AWS API网关生成的Android SDK 当我们尝试构建客户端类时,会出现以下错误: java.lang.NoClassDefFoundError:解析:Lcom/amazonaws/util/json/DateDeserializer失败 下面是我们创建客户端实例的方法: ApiClientFactory factory = new ApiClientFactory(); final CigarSocialClient client = factory.bu
java.lang.NoClassDefFoundError:解析:Lcom/amazonaws/util/json/DateDeserializer失败代码>
下面是我们创建客户端实例的方法:
ApiClientFactory factory = new ApiClientFactory();
final CigarSocialClient client = factory.build(CigarSocialClient.class);
我们一直在寻找解决方案,但还没有找到任何结果。最好的解决方案似乎是抛弃生成的sdk,通过web请求调用我们的api网关
感谢您的帮助
更新:
我们正在使用下面的
这是我们应用程序的build.gradle
文件
apply plugin: 'com.android.application'
android {
compileSdkVersion 23
buildToolsVersion '24.0.1'
defaultConfig {
applicationId "com.example"
minSdkVersion 14
targetSdkVersion 24
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile fileTree(include: ['*.jar'], dir: 'app/libs')
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:24.2.0'
compile 'com.android.support:recyclerview-v7:23.4.0'
compile 'com.android.support:design:24.2.0'
compile 'com.android.volley:volley:1.0.0'
compile 'com.android.support:support-v4:23.4.0'
compile 'com.amazonaws:aws-android-sdk-core:2.2.+'
compile 'com.amazonaws:aws-android-sdk-cognitoidentityprovider:2.2.+'
}
这是堆栈跟踪:
D/Error:ERR:stack=java.lang.NoClassDefFoundError:Lcom/amazonaws/util/json/DateDeserializer的解析失败;
在com.amazonaws.mobileconnectors.apigateway.ApiClientHandler.(ApiClientHandler.java:59)
位于com.amazonaws.mobileconnectors.apigateway.ApiClientFactory.getHandler(ApiClientFactory.java:145)
在com.amazonaws.mobileconnectors.apigateway.ApiClientFactory.build(ApiClientFactory.java:123)上
位于com.example.API.testApiGatwaySdk(API.java:125)
在com.example.ListFragment$override.onCreateView(ListFragment.java:60)上
在com.example.ListFragment$override.access$dispatch(ListFragment.java)上
位于com.example.ListFragment.onCreateView(ListFragment.java:0)
位于android.support.v4.app.Fragment.performCreateView(Fragment.java:2080)
位于android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1108)
位于android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1290)
位于android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1272)
位于android.support.v4.app.FragmentManagerImpl.dispatchActivityCreated(FragmentManager.java:2149)
位于android.support.v4.app.FragmentController.dispatchActivityCreated(FragmentController.java:201)
位于android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:600)
位于android.support.v7.app.AppCompatActivity.onStart(AppCompatActivity.java:178)
位于android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1256)
位于android.app.Activity.performStart(Activity.java:6929)
在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2910)上
位于android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3008)
位于android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:4974)
位于android.app.ActivityThread.-wrap21(ActivityThread.java)
在android.app.ActivityThread$H.handleMessage(ActivityThread.java:1656)上
位于android.os.Handler.dispatchMessage(Handler.java:102)
位于android.os.Looper.loop(Looper.java:154)
位于android.app.ActivityThread.main(ActivityThread.java:6688)
位于java.lang.reflect.Method.invoke(本机方法)
在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1468)上
位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1358)
原因:java.lang.ClassNotFoundException:在路径:DexPathList[[dex file”/data/data/com.example/files/instant run/dex/slice-support-annotations-24.2.0_F4E9AD562A860D98FA5881A52F273573AB23E-classes.dex]上未找到类“com.amazonaws.util.json.DateDeserializer”“/data/data/com.example/files/instant run/dex/slice-slice_9-classes.dex”,dex file“/data/data/com.example/files/instant run/dex/slice-slice_8-classes.dex”,dex file“/data/com.example/files/instant run/data/com.dex/slice-slice_7-classes.dex”,dex file“/data/data/com.example/files/files/instant run/dex/slice-slice-slice_6-classes.dex”,dex文件”/data/data/com.example/files/instant run/dex/slice-slice_5-classes.dex”,dex文件“/data/data/com.example/files/instant run/dex/slice-slice_4-classes.dex”,dex文件“/data/data/com.example/files/instant run/data/com.dex/instant run/dex/slice-slice_2-classes.dex”,dex文件“/data/data/com.example/files/instant run/dex/slice-slice_1-classes.dex“,dex file”/data/data/com.example/files/instant run/dex/slice-slice_0-classes.dex”,dex file”/data/data/com.example/files/instant run/dex/slice-internal_impl-24.2.0_D08C5958E93C18231CDDF69DC14D838AE6D3FA3-classes.dex“,dex file”/data/data/com.example/files/instant-run/dex/slice-internal_impl-24.2.0_ce51fbf88aa3b5412a363fc449e8164899b38118-classes.dex”,dex-file“/data/com.example/files/instant-run/dex/slice-internal_impl-24.2.0_982F268455E74CF0A28B29B365
您使用的是非常旧的aws android sdk core
版本,与API gateway生成的altest客户端不兼容。请将sdk更新为最新版本。发布或调试版本?我相信这是一个调试版本。我对android有点陌生,但我可以看到输出apk具有app debug.apk
文件名。Ok can如果要添加build.gradle文件,请使用build.gradle文件更新问题。我们的sdk位于我们的app/libs文件夹中。完整堆栈跟踪请:)