【问题标题】:Why can't I export the apk file from Eclipse when I turn on ProGuard?为什么我在开启 ProGuard 时无法从 Eclipse 导出 apk 文件?
【发布时间】:2015-03-12 21:23:51
【问题描述】:

[2015-03-13 02:48:07 - ScoresOnGo] Proguard 返回错误代码 1。请参阅控制台
[2015-03-13 02:48:07 - ScoresOnGo] 警告:com.google.android.gms.cast.TextTrackStyle:找不到引用的类 android.view.accessibility.CaptioningManager
[2015-03-13 02:48:07 - ScoresOnGo] 警告:com.google.android.gms.cast.TextTrackStyle:找不到引用的类 android.view.accessibility.CaptioningManager$CaptionStyle
[2015-03-13 02:48:07 - ScoresOnGo] 警告:com.google.android.gms.cast.TextTrackStyle:找不到引用的类 android.view.accessibility.CaptioningManager$CaptionStyle
[2015-03-13 02:48:07 - ScoresOnGo] 警告:com.google.android.gms.cast.TextTrackStyle:找不到引用的类 android.view.accessibility.CaptioningManager$CaptionStyle
[2015-03-13 02:48:07 - ScoresOnGo] 警告:com.google.android.gms.cast.TextTrackStyle:找不到引用的类 android.view.accessibility.CaptioningManager$CaptionStyle
[2015-03-13 02:48:07 - ScoresOnGo] 警告:com.google.android.gms.cast.TextTrackStyle:找不到引用的类 android.view.accessibility.CaptioningManager$CaptionStyle
[2015-03-13 02:48:07 - ScoresOnGo] 警告:com.google.android.gms.cast.TextTrackStyle:找不到引用的类 android.view.accessibility.CaptioningManager
[2015-03-13 02:48:07 - ScoresOnGo] 警告:com.google.android.gms.cast.TextTrackStyle:找不到引用的类 android.view.accessibility.CaptioningManager
[2015-03-13 02:48:07 - ScoresOnGo] 警告:com.google.android.gms.cast.TextTrackStyle:找不到引用的类 android.view.accessibility.CaptioningManager$CaptionStyle
[2015-03-13 02:48:07 - ScoresOnGo] 警告:com.google.android.gms.fitness.service.FitnessSensorService$a:找不到引用的类 android.app.AppOpsManager
[2015-03-13 02:48:07 - ScoresOnGo] 警告:com.google.android.gms.fitness.service.FitnessSensorService$a:找不到引用的类 android.app.AppOpsManager
[2015-03-13 02:48:07 - ScoresOnGo] 警告:com.google.android.gms.internal.af:在 android.view.View 类中找不到引用的方法“boolean isAttachedToWindow()”
[2015-03-13 02:48:07 - ScoresOnGo] 警告:com.google.android.gms.internal.an$2:找不到引用的方法 'void evaluateJavascript(java.lang.String,android.webkit.ValueCallback )' 在类 android.webkit.WebView
[2015-03-13 02:48:07 - ScoresOnGo] 警告:com.google.android.gms.internal.gu:找不到引用的方法 'void evaluateJavascript(java.lang.String,android.webkit.ValueCallback) ' 在类 android.webkit.WebView
[2015-03-13 02:48:07 - ScoresOnGo] 您应该检查是否需要指定其他程序 jar。
[2015-03-13 02:48:07 - ScoresOnGo] 警告:有 11 个未解决的类或接口引用。
[2015-03-13 02:48:07 - ScoresOnGo] 您可能需要指定其他库 jars(使用“-libraryjars”)。
[2015-03-13 02:48:07 - ScoresOnGo] 警告:有 3 个未解决的对程序类成员的引用。
[2015-03-13 02:48:07 - ScoresOnGo] 您的输入类似乎不一致。
[2015-03-13 02:48:07 - ScoresOnGo] 您可能需要重新编译它们并重试。
[2015-03-13 02:48:07 - ScoresOnGo] 或者,您可能必须指定选项
[2015-03-13 02:48:07 - ScoresOnGo] '-dontskipnonpubliclibraryclassmembers'。
[2015-03-13 02:48:07 - ScoresOnGo] java.io.IOException: 请先更正上述警告。
[2015-03-13 02:48:07 - ScoresOnGo] 在 proguard.Initializer.execute(Initializer.java:321)
[2015-03-13 02:48:07 - ScoresOnGo] 在 proguard.ProGuard.initialize(ProGuard.java:211)
[2015-03-13 02:48:07 - ScoresOnGo] 在 proguard.ProGuard.execute(ProGuard.java:86)
[2015-03-13 02:48:07 - ScoresOnGo] 在 proguard.ProGuard.main(ProGuard.java:492)

【问题讨论】:

    标签: android proguard


    【解决方案1】:

    默认情况下,为了构建项目,proguard 不需要任何警告。

    如果你不使用引用的类,你可以在你的 proguard-rules 文件中使用-dontwarn <classname> 标志。

    如果您只是想碰碰运气,您也可以使用-ignorewarnings 标志忽略所有警告并继续构建。

    见: http://proguard.sourceforge.net/manual/troubleshooting.html

    【讨论】:

      【解决方案2】:

      在开启 proguard 的情况下,我从未成功从 Eclipse 导出 apk。由于 proguard 只保护代码,而不是资产,我禁用它并将我的算法卡在 C++ 中。当我收到崩溃报告时,这个复杂的堆栈跟踪。

      出于这些原因,我更喜欢 Java。我强烈建议在 Android Studio 中编写和迁移所有 Java 项目。开启 proguard 毫不费力。但正如我所说,它帮助保护的只是你的算法,与 C++ 或 NDK 相比,大部分算法提升都是由 Java 框架完成的。

      无法使用 proguard 导出的可能原因是导入的模块无法正常工作且不值得修复以使其正常工作。如果您不导入第 3 方模块,那么您需要指示 proguard 不要混淆它无法以其他方式找到的类。我开发的比发布的要多,所以我建议您参考手册以了解确切的语法。只是分享我的经验。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-03-08
        • 2019-01-06
        • 1970-01-01
        • 1970-01-01
        • 2013-02-17
        • 1970-01-01
        相关资源
        最近更新 更多