java - Android - 使用签名的 APK 时应用程序崩溃

标签 java android gradle apk

我正在尝试为我的 Android 应用获取签名的 APK。当我通过 Android Studio 安装该应用程序时,该应用程序可以完美运行,但是当我生成签名的 APK 并使用该 APK 安装该应用程序时,出现以下异常。知道会发生什么吗?

    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.app.test/com.app.test.activities.MenuActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.lang.String.equalsIgnoreCase(java.lang.String)' on a null object reference
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2358)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2420)
            at android.app.ActivityThread.access$900(ActivityThread.java:154)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1321)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:135)
            at android.app.ActivityThread.main(ActivityThread.java:5292)
            at java.lang.reflect.Method.invoke(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:372)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:904)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:699)
     Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'boolean java.lang.String.equalsIgnoreCase(java.lang.String)' on a null object reference
            at com.app.test.h.a.e(Unknown Source)
            at com.app.test.activities.MenuActivity.a(Unknown Source)
            at com.app.test.activities.MenuActivity.onCreate(Unknown Source)
            at android.app.Activity.performCreate(Activity.java:5990)
            at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2311)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2420)
            at android.app.ActivityThread.access$900(ActivityThread.java:154)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1321)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:135)
            at android.app.ActivityThread.main(ActivityThread.java:5292)
            at java.lang.reflect.Method.invoke(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:372)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:904)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:699)

这是 gradle 构建文件的样子

    buildscript {
    }
    apply plugin: 'com.android.application'

    android {
        compileSdkVersion 21
        buildToolsVersion "21.1.2"
        // that you installed in the SDK manager

        defaultConfig {
            applicationId "com.app.test"
            minSdkVersion 17
            targetSdkVersion 21
            versionCode 1
            versionName "1.0"
            multiDexEnabled true
        }
        buildTypes {
            release {
                minifyEnabled true
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            }
        }
    }


    repositories {
        mavenCentral()
        flatDir {
            dirs 'libs'
        }

        maven { url 'http://maven.livotovlabs.pro/content/groups/public' }


    }

    dependencies {
        compile fileTree(dir: 'libs', include: ['*.jar'])
        compile 'com.android.support:support-v4:21.0.3'
        compile 'com.google.android.gms:play-services:6.5.87'
        compile 'com.google.code.gson:gson:2.3.1'

        compile 'com.squareup.okhttp:okhttp:2.5.0'
        compile 'com.squareup.picasso:picasso:2.5.2'

    }

最佳答案

您正在使用 proguard,并且已通过将 minifyEnabled 设置为 true 来启用它。

buildTypes {
            release {
                minifyEnabled true
                proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            }
        }

如果您不想使用它,请将 minifyEnabled 设置为 false。否则请阅读有关如何使用混淆器的信息 http://developer.android.com/tools/help/proguard.html这里是因为它丢弃了未添加到 proguard-rules.pro 中的类文件和其他资源。

关于java - Android - 使用签名的 APK 时应用程序崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34916037/

相关文章:

java - Java从文件加载对象时的变量引用问题

java - += 和 =+ 的区别

java - 合并错误消息以进行多字段验证

Android 暗模式文本颜色在 RecyclerView 行文件中未更改

android - 检测在应用程序内部启动的 Activity

java - 使用 Heroku 升级 Play Framework DB

android - OnItemClickListener() - Android ListView

java - 由于缺少排除的依赖项,Gradle compileJava 失败

android - FaSTLane android 构建 : index. android.bundle 丢失

grails 3 插件安装位置