【问题标题】:minifyEnabled true leads to crash on app startminifyEnabled true 导致应用程序启动时崩溃
【发布时间】:2016-03-27 15:19:05
【问题描述】:

很遗憾,XX 已经停止了。

我在启动生产应用程序时立即收到此消息

buildTypes {
    release {
        minifyEnabled true
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
    }
}

我没有任何额外的 proguard 规则(因为没有图书馆声明这是必要的)。

我的依赖项如下所示:

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    testCompile 'junit:junit:4.12'
    compile 'com.loopj.android:android-async-http:1.4.9'
    compile 'com.android.support:appcompat-v7:23.1.1'
    compile 'com.android.support:design:23.1.1'
    compile 'com.google.android.gms:play-services-gcm:8.4.0'
    compile 'com.google.android.gms:play-services-ads:8.4.0'
    compile 'me.leolin:ShortcutBadger:1.1.4@aar'
    compile 'com.facebook.android:facebook-android-sdk:4.+'
    compile 'com.jraska:falcon:1.0.0'
}

我尝试的是添加

-keep class com.loopj.** {*;}
-keep class com.jraska.** {*;}
-keep class me.leolin.** {*;}
-keep class com.android.** {*;}
-keep class com.google.** {*;}
-keep class com.facebook.** {*;}

按照我的 proguard 规则,但仍然是同样的错误。有什么想法吗?

【问题讨论】:

  • 您需要从 logcat 发布错误。
  • 把你的包放在proguard里试试
  • 如何使用商店中没有的签名APK访问logcat(所以我不能报告异常)?

标签: android android-proguard


【解决方案1】:

所以我在日志中发现了错误

W/SupportMenuInflater(29041): Cannot instantiate class: android.support.v7.widget.SearchView
W/SupportMenuInflater(29041): java.lang.NoSuchMethodException: <init> [class android.content.Context]

添加后

-keep class android.support.v7.widget.SearchView { *; }

到我的 proguard-rules 文件中,一切正常。

【讨论】:

  • 如何防止原始文件。我在原始文件夹中有一些 jason 文件,我的发布版本在启用缩小时崩溃。
猜你喜欢
  • 2020-11-16
  • 1970-01-01
  • 1970-01-01
  • 2017-07-25
  • 1970-01-01
  • 1970-01-01
  • 2021-08-04
  • 2017-06-13
  • 1970-01-01
相关资源
最近更新 更多