更新了Android Studio 3.1后,每次构建后都会出现这些警告

20

Android警告

  1. 从1个方法中剥离了无效的本地信息。

从1个方法中剥离了无效的本地信息。 Message{kind=WARNING, text=从1个方法中剥离了无效的本地信息。, sources=[未知源文件], tool name=Optional.of(D8)}

  1. InnerClass注释缺少相应的EnclosingMember注释。这样的InnerClass注释将被忽略。

InnerClass注释缺少相应的EnclosingMember注释。这样的InnerClass注释将被忽略。 Message{kind=WARNING, text=InnerClass注释缺少相应的EnclosingMember注释。这样的InnerClass注释将被忽略。, sources=[未知源文件], tool name=Optional.of(D8)}

  1. 未找到类型org.w3c.dom.bootstrap.DOMImplementationRegistry,它是void com.fasterxml.jackson.databind.ext.DOMSerializer.<init>()默认或静态接口方法解糖所需的。

未找到类型org.w3c.dom.bootstrap.DOMImplementationRegistry,它是void com.fasterxml.jackson.databind.ext.DOMSerializer.<init>()默认或静态接口方法解糖所需的。 Message{kind=WARNING, text=未找到类型org.w3c.dom.bootstrap.DOMImplementationRegistry,它是void com.fasterxml.jackson.databind.ext.DOMSerializer.<init>()默认或静态接口方法解糖所需的。, sources=[/Users/deepanshusinha/git/OpenApp/OpenAppForce/app/build/intermediates/transforms/androidGradleClassShrinker/beta/debug/4/com/fasterxml/jackson/databind/ext/DOMSerializer.class], tool name=Optional.of(D8)}

Java编译器警告

  1. 规则`-keep public class *extends java.lang.annotation.Annotation {

警告:规则`-keep public class *extends java.lang.annotation.Annotation {

对于Java编译器警告,我尝试修复了我的proguard文件。这是我的proguard文件。如果我做错了什么,请让我知道。

#Start Dto#
-keep public class co.openapp.app.data.model.* {
  *;
}
#End Dto#

#OkHttp3, Okio, Retrofit
-dontwarn okhttp3.**
-dontwarn okio.**
-dontwarn javax.annotation.**

#Start Okhttp#
-dontwarn java.nio.file.**
-dontwarn java.lang.invoke.**
-dontwarn java.lang.reflect.Method
#End Okhttp#

#Start Retrofit#
-dontwarn retrofit2.**
-keep class retrofit2.** { *; }
-keepattributes Signature
-keepattributes Exceptions
#End Retrofit#

#Start Jackson
-keepattributes *Annotation*,EnclosingMethod,Signature
-keepnames class com.fasterxml.jackson.** { *; }
-dontwarn com.fasterxml.jackson.databind.**
-keep class org.codehaus.** { *; }
-keepclassmembers public final enum 
org.codehaus.jackson.annotate.JsonAutoDetect$Visibility {
    public static final 
org.codehaus.jackson.annotate.JsonAutoDetect$Visibility *; }
#End Jackson

#Start Crashlytics#
-keepattributes SourceFile,LineNumberTable
#End Crashlytics#

#dagger
-dontwarn com.google.errorprone.annotations.**

##---------------Begin: proguard configuration common for all Android apps ----------
-optimizationpasses 5
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontskipnonpubliclibraryclassmembers
-dontpreverify
-verbose
-dump class_files.txt
-printseeds seeds.txt
-printusage unused.txt
-printmapping mapping.txt
-optimizations 
!code/simplification/arithmetic,

-allowaccessmodification
-keepattributes *Annotation*
-renamesourcefileattribute SourceFile
-keepattributes SourceFile,LineNumberTable
-repackageclasses ''

-keep public class * extends android.app.Activity
-keep public class * extends android.app.Application
-keep public class * extends android.app.Service
-keep public class * extends android.content.BroadcastReceiver
-keep public class * extends android.content.ContentProvider
-keep public class * extends android.app.backup.BackupAgentHelper
-keep public class * extends android.preference.Preference
-keep public class com.android.vending.licensing.ILicensingService
-dontnote com.android.vending.licensing.ILicensingService

# Explicitly preserve all serialization members. The Serializable interface
# is only a marker interface, so it wouldn't save them.
-keepclassmembers class * implements java.io.Serializable {
    static final long serialVersionUID;
    private static final java.io.ObjectStreamField[] serialPersistentFields;
    private void writeObject(java.io.ObjectOutputStream);
    private void readObject(java.io.ObjectInputStream);
    java.lang.Object writeReplace();
    java.lang.Object readResolve();
}

# Preserve all native method names and the names of their classes.
-keepclasseswithmembernames class * {
    native <methods>;
}

-keepclasseswithmembernames class * {
    public <init>(android.content.Context, android.util.AttributeSet);
}

-keepclasseswithmembernames class * {
    public <init>(android.content.Context, android.util.AttributeSet, int);
}

# Preserve static fields of inner classes of R classes that might be accessed
# through introspection.
-keepclassmembers class **.R$* {
  public static <fields>;
}

# Preserve the special static methods that are required in all enumeration classes.
-keepclassmembers enum * {
    public static **[] values();
    public static ** valueOf(java.lang.String);
}

-keep public class * {
    public protected *;
}

-keep class * implements android.os.Parcelable {
  public static final android.os.Parcelable$Creator *;
}
##---------------End: proguard configuration common for all Android apps ----------

#---------------Begin: proguard configuration for support library  ----------
-keep class android.support.v4.app.** { *; }
-keep interface android.support.v4.app.** { *; }
-keep class com.actionbarsherlock.** { *; }
-keep interface com.actionbarsherlock.** { *; }

# The support library contains references to newer platform versions.
# Don't warn about those in case this app is linking against an older
# platform version. We know about them, and they are safe.
-dontwarn android.support.**
-dontwarn com.google.ads.**
##---------------End: proguard configuration for Gson  ----------

##---------------Begin: proguard configuration for Gson  ----------
# Gson uses generic type information stored in a class file when working with fields. Proguard
# removes such information by default, so configure it to keep all of it.
-keepattributes Signature

# For using GSON @Expose annotation
-keepattributes *Annotation*

# Gson specific classes
-keep class sun.misc.Unsafe { *; }
#-keep class com.google.gson.stream.** { *; }

# Application classes that will be serialized/deserialized over Gson
-keep class com.example.model.** { *; }

##---------------End: proguard configuration for Gson  ----------

在升级到Android Studio 3.1之后,我也遇到了同样的问题。我收到了多个警告,比如“…找不到引用类com.google.devtools.build.android.desugar.runtime.ThrowableExtension”,这些警告都与desugar包有关。 - JorgeMuci
2个回答

5

-7
将以下代码添加到您的 build.gradle(module:app)文件中:
implementation 'com.stripe:stripe-android:6.1.2'

它会修复它


1
这不像是一个合适的解决方案。为什么这会起作用? - Tobias
不要以为这会修复D8。 - Taxist Samael

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接