首页 文章

Android Studio - 签名APK发布崩溃

提问于
浏览
1

我正在为我的应用的下次更新创建一个已签名的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> finish

1 回答

  • 1

    我遇到了同样的问题,问题出在你的proguard文件中 . 使用 minifyEnabled true 时启用了proguard . 禁用它以禁用proguard或从here读取有关如何使用proguard的内容,因为它会丢弃未在proguard-rules.pro中添加的类文件和其他资源 .

相关问题