0

我在 Eclipse Luna 上用 Java 开发。打包过程由 Proguard 管理。

该应用程序在本地数据存储库和物理设备上运行良好。

但是,我将该应用程序作为测试版发布到了 Google Play。应用程序因 ClassNotFoundException 而崩溃。异常是针对由 GAE 的端点客户端库进程生成的类调用。

这是我到目前为止尝试过的,但没有运气......

  1. 重新排列构建路径以将所有客户端库放在列表顶部,取消选中依赖项并清理项目。

  2. 我还尝试在 proguard-project.txt 中使用带有完整包名和类名的 -keepclass 选项。

  3. 我将以下条目添加到我的 proguard-project.txt 中......仍然没有运气

    -keep public class * extends com.google.api.client.json.GenericJson # 需要 google-api-client 来保持泛型类型和通过反射访问的 @Key 注释** -keepclassmembers class * { @com.google.api.客户端.util.Key;-keepattributes Signature,RuntimeVisibleAnnotations,AnnotationDefault

有人知道我错过了什么吗?谢谢!

4

1 回答 1

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
于 2015-09-16T00:07:53.407 回答