android - Proguard 给了我很多警告但失败了

标签 android proguard obfuscation

我遇到了错误

Error:Execution failed for task ':app:transformClassesAndResourcesWithProguardForDebug'. Job failed, see logs for details

我收到很多警告,比如

Warning:es.usc.citius.hipster.util.examples.maze.MazeSearch$Result: can't find referenced class java.awt.Point

这对我来说看起来很奇怪,因为我在我的 proguard-rules 中添加了这条规则

-keep public class es.usc.citius.hipster.** { *; }

[编辑] 我也收到类似

的警告

Warning:com.mypackage.android.dagger.modules.AppModule_ProvideAccelerometerSensorFactory: can't find superclass or interface dagger.internal.Factory

我添加了 Dagger 规则

-dontwarn dagger.internal.codegen.**
-keepclassmembers,allowobfuscation class * {
    @javax.inject.* *;
    @dagger.* *;
    <init>();
}

-keep class dagger.* { *; }
-keep class javax.inject.* { *; }
-keep class * extends dagger.internal.Binding
-keep class * extends dagger.internal.ModuleAdapter
-keep class * extends dagger.internal.StaticInjection

和保留我的包裹的规则

-keep public class com.mypackage.android.** { *; }

在关于忽略警告的回答之后,我添加了这条规则

-dontwarn com.mypackage.android.**

而且混淆器现在不会失败。但是,我不确定这是否是最佳做法,以及忽略这些警告后会出现什么问题?

最佳答案

库类 es.usc.citius.hipster.util.examples.maze.MazeSearch 引用了一个包 java.awt.Point,它是 JDK 的一部分但不是Android JDK,不包含此包。 你只是不能在 Android 环境中使用它。

关于android - Proguard 给了我很多警告但失败了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44129935/

相关文章:

android - Proguard:混淆后应用程序崩溃

node.js - Nodejs grunt混淆

android - RecyclerView在Android 6上崩溃

java - 如何在手机 hibernate 时继续使用 onSensorChanged()?

Android 按钮高度(以编程方式)

android - ProGuard 导致 NullPointerException

java - 当 minifyEnabled 为 true 时 Android 应用程序崩溃

android - Google Place API 并非无处不在(所有)

android - ProGuard,我收到错误

Javascript 包混淆和 Bundletransformer