Конфигурация Android Proguard для библиотек SpringAndroid
Мой Android
приложение использует google-play-services_lib
библиотека и другой проект библиотеки. Этот библиотечный проект в свою очередь использует несколько сторонних библиотек (SpringAndroid
) использовать веб-сервисы в json
формат.
Проблема в том, что пока я пытаюсь экспортировать приложение, proguard
выдает ошибки и процесс останавливается. мой proguard
Конфигурация как ниже.
-verbose
-dontskipnonpubliclibraryclassmembers
-keepattributes *Annotation*,EnclosingMethod,Signature
-keep class * extends java.util.ListResourceBundle {
protected Object[][] getContents();
}
-keep public class com.google.android.gms.common.internal.safeparcel.SafeParcelable {
public static final *** NULL;
}
-keepnames @com.google.android.gms.common.annotation.KeepName class *
-keepclassmembernames class * {
@com.google.android.gms.common.annotation.KeepName *;
}
-keepnames class * implements android.os.Parcelable {
public static final ** CREATOR;
}
-keep public class com.mypackage.** {
public void set*(***);
public *** get();
}
-keep public class com.fasterxml.jackson.** { *; }
-dontwarn com.google.code.rome.android.repackaged.**
-dontwarn com.fasterxml.jackson.databind.**
-dontwarn org.simpleframework.xml.**
-dontwarn org.apache.commons.**
-keep public class org.springframework.http.converter.json.MappingJackson2HttpMessageConverter.** { *; }
По какой-то причине -keep public class
не признается, и я все еще получаю ниже proguard
ошибка сейчас.
org.springframework.http.converter.json.MappingJackson2HttpMessageConverter: can't find referenced class com.fasterxml.jackson.core.JsonFactory
org.springframework.http.converter.json.MappingJackson2HttpMessageConverter: can't find referenced class com.fasterxml.jackson.core.JsonGenerator
org.springframework.http.converter.json.MappingJackson2HttpMessageConverter: can't find referenced class com.fasterxml.jackson.core.JsonEncoding
org.springframework.http.converter.json.MappingJackson2HttpMessageConverter: can't find referenced class com.fasterxml.jackson.core.JsonEncoding
org.springframework.http.converter.json.MappingJackson2HttpMessageConverter: can't find referenced class com.fasterxml.jackson.core.JsonEncoding
org.springframework.http.converter.json.MappingJackson2HttpMessageConverter: can't find referenced class com.fasterxml.jackson.core.JsonEncoding
org.springframework.http.converter.json.MappingJackson2HttpMessageConverter: can't find referenced class com.fasterxml.jackson.core.JsonGenerator
org.springframework.http.converter.json.MappingJackson2HttpMessageConverter: can't find referenced class com.fasterxml.jackson.core.JsonEncoding
org.springframework.http.converter.json.MappingJackson2HttpMessageConverter: can't find referenced class com.fasterxml.jackson.core.JsonFactory
org.springframework.http.converter.json.MappingJackson2HttpMessageConverter: can't find referenced class com.fasterxml.jackson.core.JsonGenerator
org.springframework.http.converter.json.MappingJackson2HttpMessageConverter: can't find referenced class com.fasterxml.jackson.core.JsonEncoding
org.springframework.http.converter.json.MappingJackson2HttpMessageConverter: can't find referenced class com.fasterxml.jackson.core.JsonEncoding
org.springframework.http.converter.json.MappingJackson2HttpMessageConverter: can't find referenced class com.fasterxml.jackson.core.JsonGenerator
org.springframework.http.converter.json.MappingJackson2HttpMessageConverter: can't find referenced class com.fasterxml.jackson.core.JsonEncoding
org.springframework.http.converter.json.MappingJackson2HttpMessageConverter: can't find referenced class com.fasterxml.jackson.core.JsonEncoding
org.springframework.http.converter.json.MappingJackson2HttpMessageConverter: can't find referenced class com.fasterxml.jackson.core.JsonEncoding
org.springframework.http.converter.json.MappingJacksonHttpMessageConverter: can't find referenced class org.codehaus.jackson.map.ObjectMapper
org.springframework.http.converter.json.MappingJacksonHttpMessageConverter: can't find referenced class org.codehaus.jackson.map.ObjectMapper
org.springframework.http.converter.json.MappingJacksonHttpMessageConverter: can't find referenced class org.codehaus.jackson.map.ObjectMapper
org.springframework.http.converter.json.MappingJacksonHttpMessageConverter: can't find referenced class org.codehaus.jackson.map.ObjectMapper
org.springframework.http.converter.json.MappingJacksonHttpMessageConverter: can't find referenced class org.codehaus.jackson.map.ObjectMapper
org.springframework.http.converter.json.MappingJacksonHttpMessageConverter: can't find referenced class org.codehaus.jackson.map.ObjectMapper
org.springframework.http.converter.json.MappingJacksonHttpMessageConverter: can't find referenced class org.codehaus.jackson.JsonFactory
org.springframework.http.converter.json.MappingJacksonHttpMessageConverter: can't find referenced class org.codehaus.jackson.JsonGenerator
org.springframework.http.converter.json.MappingJacksonHttpMessageConverter: can't find referenced class org.codehaus.jackson.map.ObjectMapper
org.springframework.http.converter.json.MappingJacksonHttpMessageConverter: can't find referenced class org.codehaus.jackson.map.ObjectMapper
org.springframework.http.converter.json.MappingJacksonHttpMessageConverter: can't find referenced class org.codehaus.jackson.map.type.TypeFactory
org.springframework.http.converter.json.MappingJacksonHttpMessageConverter: can't find referenced class org.codehaus.jackson.JsonEncoding
org.springframework.http.converter.json.MappingJacksonHttpMessageConverter: can't find referenced class org.codehaus.jackson.JsonEncoding
org.springframework.http.converter.json.MappingJacksonHttpMessageConverter: can't find referenced class org.codehaus.jackson.JsonEncoding
org.springframework.http.converter.json.MappingJacksonHttpMessageConverter: can't find referenced class org.codehaus.jackson.type.JavaType
org.springframework.http.converter.json.MappingJacksonHttpMessageConverter: can't find referenced class org.codehaus.jackson.JsonEncoding
org.springframework.http.converter.json.MappingJacksonHttpMessageConverter: can't find referenced class org.codehaus.jackson.JsonGenerator
org.springframework.http.converter.json.MappingJacksonHttpMessageConverter: can't find referenced class org.codehaus.jackson.JsonEncoding
org.springframework.http.converter.json.MappingJacksonHttpMessageConverter: can't find referenced class org.codehaus.jackson.JsonFactory
org.springframework.http.converter.json.MappingJacksonHttpMessageConverter: can't find referenced class org.codehaus.jackson.JsonGenerator
org.springframework.http.converter.json.MappingJacksonHttpMessageConverter: can't find referenced class org.codehaus.jackson.map.type.TypeFactory
org.springframework.http.converter.json.MappingJacksonHttpMessageConverter: can't find referenced class org.codehaus.jackson.JsonEncoding
org.springframework.http.converter.json.MappingJacksonHttpMessageConverter: can't find referenced class org.codehaus.jackson.map.ObjectMapper
org.springframework.http.converter.json.MappingJacksonHttpMessageConverter: can't find referenced class org.codehaus.jackson.map.ObjectMapper
org.springframework.http.converter.json.MappingJacksonHttpMessageConverter: can't find referenced class org.codehaus.jackson.map.ObjectMapper
org.springframework.http.converter.json.MappingJacksonHttpMessageConverter: can't find referenced class org.codehaus.jackson.map.ObjectMapper
org.springframework.http.converter.json.MappingJacksonHttpMessageConverter: can't find referenced class org.codehaus.jackson.type.JavaType
org.springframework.http.converter.json.MappingJacksonHttpMessageConverter: can't find referenced class org.codehaus.jackson.type.JavaType
org.springframework.http.converter.json.MappingJacksonHttpMessageConverter: can't find referenced class org.codehaus.jackson.JsonEncoding
org.springframework.http.converter.json.MappingJacksonHttpMessageConverter: can't find referenced class org.codehaus.jackson.JsonGenerator
org.springframework.http.converter.json.MappingJacksonHttpMessageConverter: can't find referenced class org.codehaus.jackson.type.JavaType
org.springframework.http.converter.json.MappingJacksonHttpMessageConverter: can't find referenced class org.codehaus.jackson.type.JavaType
org.springframework.http.converter.json.MappingJacksonHttpMessageConverter: can't find referenced class org.codehaus.jackson.JsonEncoding
org.springframework.http.converter.json.MappingJacksonHttpMessageConverter: can't find referenced class org.codehaus.jackson.JsonEncoding
org.springframework.http.converter.json.MappingJacksonHttpMessageConverter: can't find referenced class org.codehaus.jackson.JsonEncoding
You should check if you need to specify additional program jars.
there were 51 unresolved references to classes or interfaces.
You may need to specify additional library jars (using '-libraryjars').
java.io.IOException: Please correct the above warnings first.
at proguard.Initializer.execute(Initializer.java:321)
at proguard.ProGuard.initialize(ProGuard.java:211)
at proguard.ProGuard.execute(ProGuard.java:86)
at proguard.ProGuard.main(ProGuard.java:492)
Не уверен, что мне не хватает. Если я настрою dontwarn
за это, proguard
лишает некоторых необходимых классов.
1 ответ
Попробуйте избавиться от предупреждений, добавив следующие строки в ваш файл proguard-project.txt:
-dontwarn org.springframework.http.client.**
-dontwarn org.springframework.http.converter.feed.**
-dontwarn org.springframework.http.converter.json.**
-dontwarn org.springframework.http.converter.xml.**