我在Eclipse Luna上用Java开发。包装过程由Proguard管理。
该应用程序在本地数据存储库和物理设备上运行良好。
但是,我将应用程序作为测试版推出到Google Play。该应用程序崩溃与ClassNotFoundException。例外是调用由GAE的端点客户端库进程生成的类。
这是我到目前为止所尝试过的,但没有运气......
重新排列构建路径以将所有客户端库放在列表顶部,取消选中依赖项并清理项目。
我还尝试在proguard-project.txt中使用-keepclass选项和完整的包和类名。
我在proguard-project.txt中添加了以下条目......仍然没有运气
-keep public class *扩展com.google.api.client.json.GenericJson #Google-api-client需要保留泛型类型和通过反射访问的@Key注释** -keepclassmembers class * { @ com.google.api.client.util.Key; } -keepattributes Signature,RuntimeVisibleAnnotations,AnnotationDefault
任何人都知道我错过了什么?谢谢!
答案 0 :(得分:0)
这是我最终添加到我的proguard-project.txt文件中的内容:
# Needed by google-api-client to keep generic types and @Key annotations accessed via reflection
-keep public final class *
-keep public class *
-keepclassmembers class * {
public <fields>;
static <fields>;
public <methods>;
protected <methods>;
}
-keepclassmembers class * extends com.google.api.client.json.GenericJson{
public <fields>;
static <fields>;
public <methods>;
}
-keepattributes Signature,RuntimeVisibleAnnotations,AnnotationDefault