无法使用 proguard 构建发布 apk

Posted

技术标签:

【中文标题】无法使用 proguard 构建发布 apk【英文标题】:Cannot build release apk with proguard 【发布时间】:2018-01-20 21:04:34 【问题描述】:

。没有proguard,一切都会很好。我已经尝试了许多其他在互联网上找到的 proguard 规则,但均未成功。我怀疑问题在于我使用 VectorDrawable 和 minApi 19。

    -ignorewarnings

    # Remove logs
    -assumenosideeffects class android.util.Log 
        public static boolean isLoggable(java.lang.String, int);
        public static int v(...);
        public static int i(...);
        public static int w(...);
        public static int d(...);
        public static int e(...);
    

    # BaseRecyclerViewAdapterHelper
    -keep class com.chad.library.adapter.** 
        *;
    
    -keep public class * extends com.chad.library.adapter.base.BaseQuickAdapter
    -keep public class * extends com.chad.library.adapter.base.BaseViewHolder
    -keepclassmembers public class * extends com.chad.library.adapter.base.BaseViewHolder 
        (android.view.View);
    

    # Glide specific rules #
    -keep public class * implements com.bumptech.glide.module.GlideModule
    -keep public class * extends com.bumptech.glide.AppGlideModule
    -keep public enum com.bumptech.glide.load.resource.bitmap.ImageHeaderParser$** 
        **[] $VALUES;
        public *;
    

    # Realm
    -keep class io.realm.annotations.RealmModule
    -keep @io.realm.annotations.RealmModule class *
    -keep class io.realm.internal.Keep
    -keep @io.realm.internal.Keep class *
    -dontwarn javax.**
    -dontwarn io.realm.**

    # Retrofit 2.X
    -dontwarn retrofit2.**
    -keep class retrofit2.**  *; 
    -keepattributes Signature
    -keepattributes Exceptions
    -keepclasseswithmembers class * 
        @retrofit2.http.* ;
    
    -dontwarn retrofit2.Platform$Java8

    # OkHttp
    -keepattributes Signature
    -keepattributes *Annotation*
    -keep class okhttp3.**  *; 
    -keep interface okhttp3.**  *; 
    -dontwarn okhttp3.**

    # Okio
    -dontwarn okio.**
    -dontwarn org.codehaus.**
    -dontwarn java.nio.**
    -dontwarn java.lang.invoke.**
    -dontwarn rx.**

Android Studio 3.0 Beta 2

Gradle 4.1 版

【问题讨论】:

我不确定,但请尝试更改 Gradle 版本。降低 ***.com/questions/36737073/… 试试这个 【参考方案1】:

问题出在 proguard-rules 的路径中

修改了这段代码

proguardFiles getDefaultProguardFile('proguard-android.txt'), '$project.rootDir/tools/proguard-rules.pro'

到这里

proguardFiles getDefaultProguardFile('proguard-android.txt'), '../tools/proguard-rules.pro'

【讨论】:

以上是关于无法使用 proguard 构建发布 apk的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 proguard 获取发布构建 apk 文件

无法使用 proguard 生成签名的 apk

proguard android studio 中的错误,无法使用 minifyenabled true 构建我的项目

gson上的android proguard无法发布apk

Android Studio 无法在 proguard 错误配置中生成签名的 APK

升级到 Proguard 4.8 后无法导出应用程序