【发布时间】:2016-11-18 15:10:40
【问题描述】:
在我的应用程序中,我启用了 progurad by minifyEnabled true 和我没有添加的 progurad 规则,我构建了已登录的 apk,然后它在启动时崩溃了,然后我才想到,我必须添加不需要缩小的类。然后我添加了诸如 -keep public class * extends android.app.Activity 之类的 progurd 规则,然后它也不起作用,我不知道为什么,因为它依赖于其他文件,如视图和 R 文件全部。所以我的疑问是,当我启用 progurad 时,我必须在 progurad 规则中添加我所有的类和库,否则它会缩小其他类并使其不起作用。所以 我怎样才能添加所有类而不会使应用程序崩溃在 apk 中构建签名 添加 proguard 规则后,应用程序也会崩溃在此处添加项目特定的 ProGuard 规则。
> -keep public class * extends android.app.Activity
> -keep public class * extends android.app.Application
> -keep public class * extends android.support.v7.app.AppCompatActivity
> -keep public class * extends android.content.BroadcastReceiver
> -keep public class * extends android.content.ContentProvider
> -keep public class * extends android.preference.Preference
> -keep public class android.os.AsyncTask
> -keep public class * extends android.view.View {
> public <init>(android.content.Context);
> public <init>(android.content.Context, android.util.AttributeSet);
> public <init>(android.content.Context, android.util.AttributeSet, int); }
> -keepclasseswithmembers class * {
> public <init>(android.content.Context, android.util.AttributeSet); }
> -keepclasseswithmembers class * {
> public <init>(android.content.Context, android.util.AttributeSet, int); }
> -keepclassmembers class * extends android.content.Context {
> public void *(android.view.View);
> public void *(android.view.MenuItem); }
> # The official support library.
> -keep class android.support.v4.app.** { *; }
> -keep interface android.support.v4.app.** { *; }
> -keep class android.support.v7.app.** { *; }
> -keep interface android.support.v7.app.** { *; }
> -dontwarn android.support.**
如何使用 proguard release build 测试应用,是否有任何东西可以检查直接登录的 apk 或者我必须添加任何映射文件。我该如何测试直接发布 apk 或者如果该 apk 上传到 playstore 则它将基于映射文件工作
【问题讨论】:
标签: android mapping minify android-proguard