【问题标题】:AWS Amplify Crashes on Android 6AWS Amplify 在 Android 6 上崩溃
【发布时间】:2021-02-08 16:39:36
【问题描述】:

我正在尝试在 android 6 上使用 AWS amplify,但应用程序在配置后 30 秒后突然崩溃并出现此错误。

java.lang.NoClassDefFoundError: Failed resolution of: Ljava/time/LocalDateTime;
       at com.amplifyframework.devmenu.PersistentLogger.addToLogs(PersistentLogger.java:116)
       at com.amplifyframework.devmenu.PersistentLogger.debug(PersistentLogger.java:88)
       at com.amplifyframework.logging.BroadcastLogger.debug(BroadcastLogger.java:101)
       at com.amplifyframework.analytics.pinpoint.AutoEventSubmitter.lambda$new$0$AutoEventSubmitter(AutoEventSubmitter.java:44)
       at com.amplifyframework.analytics.pinpoint.-$$Lambda$AutoEventSubmitter$kRbNZmP2XU9xJOUcrfJ3PKgcA28.run(lambda)
       at android.os.Handler.handleCallback(Handler.java:739)
       at android.os.Handler.dispatchMessage(Handler.java:95)
       at android.os.Looper.loop(Looper.java:148)
       at android.os.HandlerThread.run(HandlerThread.java:61)
    Caused by: java.lang.ClassNotFoundException: Didn't find class "java.time.LocalDateTime" on path: DexPathList[[zip file "/data/app/com.nowpay.nowpay-1/base.apk"],nativeLibraryDirectories=[/data/app/com.nowpay.nowpay-1/lib/arm, /data/app/com.nowpay.nowpay-1/base.apk!/lib/armeabi-v7a, /vendor/lib, /system/lib]]
       at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
       at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
       at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
       at com.amplifyframework.devmenu.PersistentLogger.addToLogs(PersistentLogger.java:116) 
       at com.amplifyframework.devmenu.PersistentLogger.debug(PersistentLogger.java:88) 
       at com.amplifyframework.logging.BroadcastLogger.debug(BroadcastLogger.java:101) 
       at com.amplifyframework.analytics.pinpoint.AutoEventSubmitter.lambda$new$0$AutoEventSubmitter(AutoEventSubmitter.java:44) 
       at com.amplifyframework.analytics.pinpoint.-$$Lambda$AutoEventSubmitter$kRbNZmP2XU9xJOUcrfJ3PKgcA28.run(lambda) 
       at android.os.Handler.handleCallback(Handler.java:739) 
       at android.os.Handler.dispatchMessage(Handler.java:95) 
       at android.os.Looper.loop(Looper.java:148) 
       at android.os.HandlerThread.run(HandlerThread.java:61) 
       Suppressed: java.lang.ClassNotFoundException: java.time.LocalDateTime
       at java.lang.Class.classForName(Native Method)
       at java.lang.BootClassLoader.findClass(ClassLoader.java:781)
       at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)
       at java.lang.ClassLoader.loadClass(ClassLoader.java:504)
               ... 10 more
    Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack trace available

【问题讨论】:

    标签: android aws-amplify


    【解决方案1】:

    这里的基本问题是应用程序试图引用一个在运行时不存在的类:

    java.lang.ClassNotFoundException:找不到类“java.time.LocalDateTime”

    在 API 级别 26 中向 Android 添加了对 java.time.* 的初始运行时支持。在一段时间内,java.time.* 仅适用于这些设备。

    从 Android Studio 4 开始,java.time.* API 可以在构建时“脱糖”。使用此功能时,生成的代码将在 所有 版本的 Android 上运行。要从这种支持中受益,您必须拥有 Android Studio 4 或更高版本,并启用“核心库脱糖”。有关详细信息,请参阅文档:https://developer.android.com/studio/write/java8-support#library-desugaring

    【讨论】:

      猜你喜欢
      • 2023-03-13
      • 2018-12-01
      • 1970-01-01
      • 2020-01-09
      • 2012-06-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多