对于依赖项更新,我必须将我的android studio gradle插件更新到7.3.1或更高版本。
我已更新
classpath 'com.android.tools.build:gradle:7.0.4' ->
classpath 'com.android.tools.build:gradle:7.3.1'
和
distributionUrl=https\://services.gradle.org/distributions/gradle-7.0.2-bin.zip ->
distributionUrl=https\://services.gradle.org/distributions/gradle-7.4-bin.zip
在不更改任何其他代码的情况下,执行此操作后,应用程序在Android API版本24上开始崩溃,原因是
uncaughtException
java.lang.NoClassDefFoundError: java.time.Instant
at libcore.reflect.InternalNames.getClass(InternalNames.java:55)
at java.lang.Class.getDexCacheType(Class.java:2551)
at java.lang.reflect.Method.getReturnType(Method.java:150)
at java.lang.Class.getDeclaredMethods(Class.java:1811)
at java.io.ObjectStreamClass.computeDefaultSUID(ObjectStreamClass.java:1684)
at java.io.ObjectStreamClass.-wrap8(ObjectStreamClass.java)
at java.io.ObjectStreamClass$1.run(ObjectStreamClass.java:239)
at java.io.ObjectStreamClass$1.run(ObjectStreamClass.java:238)
at java.security.AccessController.doPrivileged(AccessController.java:41)
at java.io.ObjectStreamClass.getSerialVersionUID(ObjectStreamClass.java:236)
at java.io.ObjectStreamClass.writeNonProxy(ObjectStreamClass.java:711)
at java.io.ObjectOutputStream.writeClassDescriptor(ObjectOutputStream.java:680)
at java.io.ObjectOutputStream.writeNonProxyDesc(ObjectOutputStream.java:1322)
at java.io.ObjectOutputStream.writeClassDesc(ObjectOutputStream.java:1271)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1467)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1218)
at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1584)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1549)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1472)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1218)
at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1584)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1549)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1472)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1218)
at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1584)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1549)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1472)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1218)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:346)
at android.os.Parcel.writeSerializable(Parcel.java:1521)
at android.os.Parcel.writeValue(Parcel.java:1474)
at android.os.Parcel.writeArrayMapInternal(Parcel.java:723)
at android.os.BaseBundle.writeToParcelInner(BaseBundle.java:1408)
at android.os.Bundle.writeToParcel(Bundle.java:1133)
at android.os.Parcel.writeBundle(Parcel.java:763)
at android.content.Intent.writeToParcel(Intent.java:8655)
at android.app.ActivityManagerProxy.startActivity(ActivityManagerNative.java:3052)
at android.app.Instrumentation.execStartActivity(Instrumentation.java:1518)
at android.app.Activity.startActivityForResult(Activity.java:4224)
at androidx.activity.ComponentActivity.startActivityForResult(ComponentActivity.java:2)
at androidx.core.app.a.i(ActivityCompat.java:1)
at androidx.activity.ComponentActivity$b.f(ComponentActivity.java:166)
at androidx.activity.result.ActivityResultRegistry$a.b(ActivityResultRegistry.java:35)
at androidx.activity.result.ActivityResultLauncher.a(ActivityResultLauncher.java:2)
在time.javaAGP更新后,对像www.example.com这样的API V26库的去糖似乎不能正常工作。作为参考,我打开了coreLibraryDesugaringEnabled
compileOptions {
coreLibraryDesugaringEnabled true
sourceCompatibility = javaVersion
targetCompatibility = javaVersion
}
我在
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:1.1.5'
进一步更新也不能解决这个问题。有什么建议可以解决这个问题吗?
1条答案
按热度按时间m2xkgtsf1#
您的意思是进一步升级desugaring库或进一步升级Android gradle插件不起作用吗?如果您是指gradle插件,那么我建议尝试将desugaring库升级到1.2.0,这可能会有所帮助。
文档中说1.2.0版本的脱糖库需要min7.3.1 android gradle插件,所以更新的脱糖库版本可能会有所帮助。