【发布时间】:2020-07-29 02:05:42
【问题描述】:
我对适用于 Android 的 AWS Amplify 有疑问。我正在使用 Cognito 和 S3,两者都是通过 Amplify 配置的。当我初始化我的应用程序时,它会因 API 级别低于 21 而崩溃。如果我以 API 级别 21 或更高级别运行它,它会成功运行。这是一个例外:
07-28 22:02:08.693 5105-5105/com.marcast.sistmovildonatto.debug E/AndroidRuntime: FATAL EXCEPTION: main
java.lang.NoClassDefFoundError: com/amazonaws/mobile/client/AWSMobileClient
at com.amplifyframework.auth.cognito.AWSCognitoAuthPlugin.<init>(AWSCognitoAuthPlugin.java:103)
at com.marcast.sistmovildonatto.DidonatoApplication.onCreate(DidonatoApplication.kt:16)
at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:999)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4151)
at android.app.ActivityThread.access$1300(ActivityThread.java:130)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1255)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4745)
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:786)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.ClassNotFoundException: com.amazonaws.mobile.client.AWSMobileClient
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61)
at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
at com.amplifyframework.auth.cognito.AWSCognitoAuthPlugin.<init>(AWSCognitoAuthPlugin.java:103)
at com.marcast.sistmovildonatto.DidonatoApplication.onCreate(DidonatoApplication.kt:16)
at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:999)
at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4151)
at android.app.ActivityThread.access$1300(ActivityThread.java:130)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1255)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4745)
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:786)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
at dalvik.system.NativeStart.main(Native Method)
我正在使用 Cognito 的访客身份验证,以及对对象的公共访问权限的 S3。崩溃发生在这里:
class DidonatoApplication: Application() {
override fun onCreate() {
super.onCreate()
try {
Amplify.addPlugin(AWSCognitoAuthPlugin()) //HERE throws exception
Amplify.addPlugin(AWSS3StoragePlugin())
Amplify.configure(applicationContext)
Log.i("DidonatoMobile", "Initialized Amplify")
} catch (error: AmplifyException) {
Log.e("DidonatoMobile", "Could not initialize Amplify", error)
}
}
}
有人知道可能是什么问题吗?
【问题讨论】:
-
嗨,Matias 感谢您在 Amplify Android 存储库中提出 github.com/aws-amplify/amplify-android/issues/657。在此处留下链接以供交叉参考。 - 扩大团队。
标签: android aws-amplify