我正在使用Android Studio和ProGuard插件。
当我构建我的版本时,我得到以下注释:
Note: the configuration refers to the unknown class 'String'
Maybe you meant the fully qualified name 'java.lang.String'?
这是我的Gradle配置:
proguardFiles getDefaultProguardFile('proguard-android.txt'),
'proguard-rules.pro', 'proguard-guava.pro'
这是proguard-rules.pro:
-dontnote org.apache.http.conn.scheme.HostNameResolver
-dontnote org.apache.http.conn.**
-dontnote org.apache.http.params.**
-dontnote android.net.http.**
-dontnote **ILicensingService
-dontnote com.android.vending.billing.IInAppBillingService
这是proguard-guava.pro:
-keep class com.google.common.io.Resources {
public static <methods>;
}
-keep class com.google.common.collect.Lists {
public static ** reverse(**);
}
-keep class com.google.common.base.Charsets {
public static <fields>;
}
-keep class com.google.common.base.Joiner {
public static Joiner on(String);
public ** join(...);
}
-keep class com.google.common.collect.MapMakerInternalMap$ReferenceEntry
-keep class com.google.common.cache.LocalCache$ReferenceEntry
-dontwarn sun.misc.Unsafe
-dontwarn com.google.common.collect.MinMaxPriorityQueue
这意味着什么?
答案 0 :(得分:1)
在proguard-guava.pro
文件中,尝试更改此内容:
-keep class com.google.common.base.Joiner {
public static Joiner on(String);
public ** join(...);
}
到此:
-keep class com.google.common.base.Joiner {
public static Joiner on(java.lang.String);
public ** join(...);
}
注意java.lang.String
的差异。
希望这会有所帮助。干杯