在proguard之后点击不在发布apk中

问题描述 投票:1回答:1

在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);
}

enumerations

-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.**

Understand the @Keep support annotation.

-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文件有这样的程序:

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
}

由于这个问题,我无法发布我的第一个应用程序。

android-studio proguard build.gradle obfuscation shrinkresources
1个回答
-1
投票

好吧,通过禁用proguard功能让它工作,虽然我也想知道如何使用proguard。现在应用程序是17mb但是也许它可以用proguard更小?

© www.soinside.com 2019 - 2024. All rights reserved.