我正在为我的应用的下一次更新创建一个已签名的APK。但是,当我将此APK文件传输到我的设备并进行安装时,它会在打开应用程序时崩溃。
这是我的项目级别gradle文件
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.5.0'
classpath 'com.google.gms:google-services:2.0.0-alpha6'
}
}
allprojects {
repositories {
jcenter()
}
}
这是我的模块gradle文件代码:
apply plugin: 'com.android.application'
android {
compileSdkVersion 23
buildToolsVersion '23.0.0'
useLibrary 'org.apache.http.legacy'
defaultConfig {
applicationId "com.washkart.activities"
minSdkVersion 15
targetSdkVersion 19
// Enabling multidex support.
multiDexEnabled true
}
repositories {
jcenter()
flatDir {
dirs 'libs'
}
}
buildTypes {
release {
shrinkResources true
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-project.txt'
}
}
dataBinding {
enabled = true
}
}
dependencies {
compile files('libs/joda-time-2.4.jar')
compile(name:'acra-4.7.0', ext:'aar')
compile project(':ViewPagerIndicator')
compile 'com.google.android.gms:play-services:8.4.0'
compile 'com.android.support:appcompat-v7:23.1.1'
compile 'com.google.android.gms:play-services-ads:8.4.0'
compile 'com.google.android.gms:play-services-identity:8.4.0'
compile 'com.google.android.gms:play-services-gcm:8.4.0'
compile 'com.facebook.android:facebook-android-sdk:4.6.0'
compile 'com.google.android.gms:play-services-analytics:8.4.0'
compile 'com.android.support:support-v4:23.1.1'
compile 'com.android.support:multidex:1.0.0'
}
apply plugin: 'com.google.gms.google-services'
我在我的proguard文件中添加了以下行,以避免我在签署APK时发出的警告/错误:
-keepnames class org.apache.** {*;}
-keep class org.apache.** {*;}
-keep class android.support.v4.** { *; }
-keep interface android.support.v4.app.** { *; }
-dontnote android.support.v4.**
-keep class org.joda.time.** { *; }
-keep interface org.joda.time.** { *;}
-keep class android.support.v7.app.** { *; }
-keep interface android.support.v7.app.** { *; }
-dontskipnonpubliclibraryclassmembers
-dontwarn org.apache.commons.logging.LogFactory
-dontwarn org.apache.http.annotation.ThreadSafe
-dontwarn org.apache.http.annotation.Immutable
-dontwarn org.apache.http.annotation.NotThreadSafe
-dontwarn org.jodatime.time.**
-dontwarn org.joda.convert.**
-dontwarn org.apache.http.**
-dontwarn android.net.**
我有android studio 1.5.1并在Android 4.4.2上进行测试。 我在Build> Generate Signed APK中生成的过程>从下拉列表中选择模块>添加密钥库文件,别名和密码> Build type = release>光洁度
答案 0 :(得分:1)
我遇到了同样的问题,问题出在你的proguard文件中。
您在使用minifyEnabled true
时启用了proguard。
禁用它以禁用proguard或读取如何使用here中的proguard,因为它会丢弃未在proguard-rules.pro中添加的类文件和其他资源。