【问题标题】:classes.jar not found after using ProGuard in Android studio在 Android Studio 中使用 ProGuard 后找不到 classes.jar
【发布时间】:2017-08-20 20:20:18
【问题描述】:

我在 build.grade 中启用了 minifyEnabled true。

[...]
            Information:Gradle tasks [:app:assembleRelease]
            Warning:com.caverock.androidsvg.SVGImageView: can't find referenced class com.caverock.androidsvg.R$styleable
            Warning:com.caverock.androidsvg.SVGImageView: can't find referenced class com.caverock.androidsvg.R
            Warning:there were 3 unresolved references to classes or interfaces.
                     You may need to add missing library jars or update their versions.
                     If your code works fine without the missing classes, you can suppress
                     the warnings with '-dontwarn' options.
                   (http://proguard.sourceforge.net/manual/troubleshooting.html#unresolvedclass)
            Exception while processing task 
            java.io.IOException: Please correct the above warnings first.
                at proguard.Initializer.execute(Initializer.java:473)
                at proguard.ProGuard.initialize(ProGuard.java:233)
                at proguard.ProGuard.execute(ProGuard.java:98)
                at proguard.gradle.ProGuardTask.proguard(ProGuardTask.java:1074)
                at com.android.build.gradle.tasks.AndroidProGuardTask.doMinification(AndroidProGuardTask.java:137)
                at com.android.build.gradle.tasks.AndroidProGuardTask$1.run(AndroidProGuardTask.java:113)
                at com.android.builder.tasks.Job.runTask(Job.java:48)
                at com.android.build.gradle.tasks.SimpleWorkQueue$EmptyThreadContext.runTask(SimpleWorkQueue.java:41)
                at com.android.builder.tasks.WorkQueue.run(WorkQueue.java:227)
                at java.lang.Thread.run(Thread.java:745)
            :app:dexRelease
            :app:validateExternalOverrideSigning
            :app:packageRelease FAILED
            Error:Execution failed for task ':app:packageRelease'.
            > Unable to compute hash of /Users/sanjay/Desktop/android_project/RestaurantApp/app/build/intermediates/classes-proguard/release/classes.jar
            Information:BUILD FAILED
[...]

【问题讨论】:

  • 跟踪跟踪。所有这些丢失的、被引用的类!
  • @ShawnMehen - 谢谢我从你的帖子中得到了线索。我正在使用 SVGImage 库 bita 版本。这导致了问题。我必须将它包含在我的 proguard 文件中。再次感谢。

标签: android proguard


【解决方案1】:

我遇到了同样的问题,并在某处阅读了解决此问题的方法,它是禁用 minifyEnabled,生成签名的 APK。

buildTypes {
    release {
        minifyEnabled false
        shrinkResources true
        proguardFiles 'proguard-project.txt'
    }

在将 buildTool 更新到 23.0 之前,我从未遇到过这个问题。

此外,对于这个较新的版本,您需要将其添加到您的Progaurd.txt file

-keep public class com.google.android.gms.* { public *; }
-dontwarn com.google.android.gms.**

希望这也有助于解决您的问题。

【讨论】:

  • 这不会也禁用proguard吗?
  • @Teifi,我不认为这会禁用 proguard,但是是的,这会在打包你的 apk 文件时忽略来自此类的警告。另外请注意我在 BuildTool 23.0 版中遇到了这个问题。可能是 Google 可能已在最新版本中修复了此问题。
  • 我刚刚尝试升级到 23.0.2,但问题仍然存在。我想我需要禁用缩小。所以即使禁用了 minify,代码仍然会被混淆?
猜你喜欢
  • 2014-06-02
  • 1970-01-01
  • 1970-01-01
  • 2018-05-19
  • 1970-01-01
  • 1970-01-01
  • 2014-01-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多