简体   繁体   English

android -proguard 阻止应用程序被安装

[英]android -proguard preventing app to be installed

when I build and make my app apk file , it doesn't install on the phone , it just said the app is not installed and if I turn minifyEnabled to false to make the proguard disabled and then make the apk it installs and runs .当我构建和制作我的应用程序 apk 文件时,它没有安装在手机上,它只是说该应用程序未安装,如果我将 minifyEnabled 设置为 false 以禁用 proguard,然后使其安装并运行 apk。

this is my gradle :这是我的毕业证书:

dependencies {
// Recommended: Add the Firebase SDK for Google Analytics.
implementation 'com.google.firebase:firebase-analytics:17.2.3'
implementation 'com.google.firebase:firebase-crashlytics:17.0.0-beta01'

implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlin_version"

implementation 'com.android.support:multidex:1.0.3'

implementation 'androidx.appcompat:appcompat:1.2.0-alpha01'
implementation 'androidx.recyclerview:recyclerview:1.2.0-alpha01'
implementation 'androidx.cardview:cardview:1.0.0-alpha01'
implementation 'com.google.android.material:material:1.2.0-alpha01'
implementation 'androidx.constraintlayout:constraintlayout:2.0.0-beta4'

implementation('cn.trinea.android.view.autoscrollviewpager:android-auto-scroll-view-pager:1.1.2') {
    exclude module: 'support-v4'
}
implementation 'com.github.bumptech.glide:glide:4.9.0'
implementation 'com.github.shell-software:fab:1.1.2'
implementation 'com.alirezaafkar:sundatepicker:2.0.8'
implementation 'me.dm7.barcodescanner:zxing:1.9'
implementation 'com.google.android.gms:play-services-maps:17.0.0'
implementation 'com.google.android.gms:play-services-gcm:17.0.0'
implementation 'com.google.android.gms:play-services-location:17.0.0'

implementation 'com.google.firebase:firebase-core:17.2.3'
implementation 'com.google.firebase:firebase-messaging:20.1.2'

implementation 'com.nineoldandroids:library:2.4.0'
implementation 'com.daimajia.slider:library:1.1.5@aar'
implementation 'com.squareup.picasso:picasso:2.5.2'

implementation 'com.github.MikeOrtiz:TouchImageView:2.2.0' // Android X

} }

this is my proguard :这是我的 proguard:

    -keep class org.apache.http.** { *; }
-keep class org.apache.commons.codec.** { *; }
-keep class org.apache.commons.logging.** { *; }
-keep class android.net.compatibility.** { *; }
-keep class android.net.http.** { *; }
-keep class javax.annotation.**{*;}
-dontwarn javax.annotation.**
-dontwarn org.apache**

-keep public class android.net.http.SslError
-keep public class android.webkit.WebViewClient
-dontwarn android.webkit.WebView
-dontwarn android.net.http.SslError
-dontwarn android.webkit.WebViewClient

-keep class cn.trinea.android.** { *; }
-keepclassmembers class cn.trinea.android.** { *; }
-dontwarn cn.trinea.android.**

-dontwarn com.squareup.picasso.**

-keep class com.parse.**{*;}
-dontwarn com.parse.**
-keep class org.slf4j.**{*;}
-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(...);
                        }

-keep class cn.trinea.android.** { *; }
-keepclassmembers class cn.trinea.android.** { *; }
-dontwarn cn.trinea.android.**
-dontwarn org.slf4j.**

-keep public class com.google.android.gms.* { public *; }
-keep class com.google.android.gms.* { *; }
-keep class com.google.* {  *; }
-dontwarn com.google.**

-keep class com.crashlytics. { *; }
-dontwarn com.crashlytics.
-keep class io.fabric.sdk.android. { *; }
-dontwarn io.fabric.sdk.android.
-keep class com.crashlytics.android. { *; }
-dontwarn com.crashlytics.android.

-keepattributes *Annotation*
-keepattributes SourceFile,LineNumberTable
-keep public class * extends java.lang.Exception
-keep class com.crashlytics.** { *; }
-dontwarn com.crashlytics.**

-keep class com.analytics.** { *; }
-dontwarn com.analytics.**
-keep class com.crashlytics.** { *; }
-dontwarn com.crashlytics.**

-keep class com.firebase.** { *; }
-keep class org.apache.** { *; }

is there any way to make android studio return the errors before building the apk or any other way that I can find out why it is not installing when the proguard is enabled ?有什么方法可以让 android studio 在构建 apk 之前返回错误,或者我可以通过任何其他方式找出为什么在启用 proguard 时它没有安装?

I also had the same issue.我也有同样的问题。 I was generating an unsigned APK of the app (without a key and certificates).我正在生成应用程序的未签名 APK(没有密钥和证书)。 However, when I generated a signed APK, everything worked fine.但是,当我生成签名的 APK 时,一切正常。 You can try that.你可以试试。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM