Android-Studio-1.2.RC在Square的Okio库参考上的Proguard警告

Bod*_* Hu 8 android proguard square android-studio okio

与Android Studio:1.2.RC

我在.gradle中启用了proguard:```

minifyEnabled=true
Run Code Online (Sandbox Code Playgroud)

and added these rules to my proguard-rules.pro:

-dontwarn com.squareup.**
-dontwarn okio.**
Run Code Online (Sandbox Code Playgroud)

and added these lint rules to my .gradle file:

warningsAsErrors false
abortOnError false
disable 'InvalidPackage'
Run Code Online (Sandbox Code Playgroud)

```

但是当我尝试在调试模式下运行应用程序时,我仍然会收到这些警告:

```
Warning: okio.DeflaterSink: can't find referenced class org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement
Warning: okio.Okio: can't find referenced class java.nio.file.Files
Warning: okio.Okio: can't find referenced class java.nio.file.Files
Warning: okio.Okio: can't find referenced class java.nio.file.Files
Warning: okio.Okio: can't find referenced class java.nio.file.Path
Warning: okio.Okio: can't find referenced class java.nio.file.OpenOption
Warning: okio.Okio: can't find referenced class java.nio.file.Path
Warning: okio.Okio: can't find referenced class java.nio.file.OpenOption
Warning: okio.Okio: can't find referenced class org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement
Warning: okio.Okio: can't find referenced class java.nio.file.Path
Warning: okio.Okio: can't find referenced class java.nio.file.OpenOption
Warning: okio.Okio: can't find referenced class java.nio.file.Path
Warning: okio.Okio: can't find referenced class java.nio.file.OpenOption
Warning: okio.Okio: can't find referenced class org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement
Warning: there were 14 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)
:app:proguardDebug FAILED
Run Code Online (Sandbox Code Playgroud)

```

这很奇怪,因为我还将这些规则/选项添加到依赖于OkHttp/Picasso的所有库模块中,我不知道哪里出错了,也许这是一个Android Studio错误?有没有人有这个问题的线索?

我在github上打开了一个问题.

Mar*_*cny 20

您已禁用警告

-dontwarn com.squareup.**
-dontwarn okio.**
Run Code Online (Sandbox Code Playgroud)

但是怎么样的包(如你发布的日志中所示)

-dontwarn org.codehaus
-dontwarn java.nio
Run Code Online (Sandbox Code Playgroud)

无论哪种方式,忽略警告都不是一个好方法.

尝试保持这些类不被缩小:

-keep public class org.codehaus.**
-keep public class java.nio.**
Run Code Online (Sandbox Code Playgroud)


Bod*_* Hu 2

天哪,我忘记为我的调试版本指定 proguard 文件,添加“proguardFiles”规则可以解决问题:

    buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
        debug {
            debuggable false
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            applicationIdSuffix ".debug"
        }
    }
Run Code Online (Sandbox Code Playgroud)

有一次你费尽心思寻找钥匙,它就在你的口袋里。