在 proguard 之后,点击在发布 apk 中不起作用
我可以将应用程序部署到模拟器甚至真正的 android 智能手机,一切正常,但是当我创建发布 apk,将其传输到手机时,我无法播放,因为点击不起作用。实际上,我可以单击按钮,但它们不会执行。就像“播放”按钮一样,当我单击它时表明我正在单击它,但它并没有开始游戏。我玩过很多proguard,甚至尝试将minifyEnabled更改为false并将shrinkResource更改为false,但现在它给出了有关锁定PID错误的错误。到目前为止我所知道的一切都试过了。我知道我不能在 proguard 文件中包含一些东西,我只是无法得到它是什么。
我的proguard文件:
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-verbose
默认情况下关闭优化。Dex 不喜欢代码通过 ProGuard 优化和预验证步骤运行(并且自己执行其中一些优化)。
-dontoptimize
-dontpreverify
请注意,如果要启用优化,不能只在自己的项目配置文件中包含优化标志;相反,您需要从文件中指向该"proguard-android-optimize.txt"
文件而不是该project.properties
文件。
-keepattributes *Annotation*
-keep public class com.google.vending.licensing.ILicensingService
-keep public class com.android.vending.licensing.ILicensingService
-keepclasseswithmembernames class * {
native <methods>;`
}
-keepclassmembers public class * extends android.view.View {
void set*(***);
*** get*();
}
我们希望在 Activity 中保留可以在 XML 属性中使用的方法onClick
-keepclassmembers class * extends android.app.Activity {
public void *(android.view.View);
}
枚举
-keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
}
-keepclassmembers class * implements android.os.Parcelable {
public static final android.os.Parcelable$Creator CREATOR;
}
-keepclassmembers class **.R$* {
public static <fields>;
}
支持库包含对较新平台版本的引用。如果此应用程序链接到较旧的平台版本,请不要警告那些。我们知道他们,他们是安全的。
-dontwarn android.support.**
了解@Keep 支持注解。
-keep class android.support.annotation.Keep
-keep @android.support.annotation.Keep class * {*;}
-keepclasseswithmembers class * {
@android.support.annotation.Keep <methods>;
}
-keepclasseswithmembers class * {
@android.support.annotation.Keep <fields>;
}
-keepclasseswithmembers class * {
@android.support.annotation.Keep <init>(...);
}
结尾
我的build.gradle
文件有这样的proguard:
buildTypes {
release {
minifyEnabled true
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android.txt')
}
我没有使用任何自定义文件。我以前做过,但只是删除了,现在我在逗那个 txt 文件。
我正在使用 multiDex 导致文件大小太大。我正在使用 firebase 核心外部库。这里是图书馆:
dependencies {
compile 'com.google.android.gms:play-services- appindexing:9.0.2'
compile 'com.google.android.gms:play-services-analytics:9.0.2'
compile 'com.google.android.gms:play-services-location:9.0.2'
compile 'com.google.android.gms:play-services:9.0.2'
compile 'com.google.android.gms:play-services-ads:9.0.2'
compile 'com.google.android.gms:play-services-auth:9.0.2'
compile 'com.google.android.gms:play-services-gcm:9.0.2'
compile 'com.google.firebase:firebase-core:9.0.2'
compile 'com.android.support:multidex:1.0.1'
compile 'com.android.support:support-v4:24.0.0
}
由于这个问题,我无法发布我的第一个应用程序。