应用程序仅在发布版本中崩溃

调试模式下运行应用程序时,应用无法崩溃。但是,当生成.apk文件发布时,应用程序崩溃。此错误不会发生在所有手机上,仅在少数具有Android 6的手机上。

logcat 显示问题出在类 (android.support.v4.widget.drawerlayout) 中的 NullPointerException。NullPointerException如何仅在发布apk上启动?

我们已经禁用了 proguard、minify 和 shrinkResources。未解决此错误。

以下是一些日志:

Attempt to invoke virtual method 'int android.view.WindowInsets.getSystemWindowInsetLeft()' on a null object reference
  at android.support.v4.widget.i.a(Unknown Source)
  at android.support.v4.widget.DrawerLayout$d.a(Unknown Source)
  at android.support.v4.widget.DrawerLayout.onMeasure(Unknown Source)
  at android.view.View.measure(View.java:18799)
  at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5951)
  at android.widget.FrameLayout.onMeasure(FrameLayout.java:194)    
  at android.support.v7.widget.ContentFrameLayout.onMeasure(Unknown Source)
  at android.view.View.measure(View.java:18799)
  at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5951)

答案 1

您正在 android.support.v4.widget.drawerlayout 上获得 NullPointerException

NullPointerException 在应用程序尝试使用具有 null 值的对象引用时引发。

NullPointerException如何仅在发布apk上启动?

准备要发布的应用程序时,需要配置、生成和测试应用程序的发布版本。配置任务非常简单,涉及基本的代码清理和代码修改任务,可帮助优化应用程序。

  1. 阅读准备发布

  2. set minifyEnabled false

你可以自定义你喜欢这个build.gradle

 buildTypes {


    debug {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

    }

    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        debuggable false
        zipAlignEnabled true
        jniDebuggable false
        renderscriptDebuggable false

    }
}

确保使用稳定的支持库和构建工具

    compileSdkVersion 24
    buildToolsVersion "24.0.2"

     compile 'com.android.support:appcompat-v7:24.2.0'
     compile 'com.android.support:design:24.2.0'

项目级别

 classpath 'com.android.tools.build:gradle:2.1.2' // or 2.2.2

然后

在主菜单上,选择文件|使缓存失效/重新启动。此时将显示“使缓存无效”消息,通知您缓存将在下次启动时失效并重新生成。使用对话框中的按钮使缓存失效,重新启动 Android Studio 。

注意:您可以向我们提供您的.禁用设施 。build.gradle"instant run"

.


答案 2
android{
  buildTypes{
     release{
        minifyEnabled false
     }
  }
}

在build.grade中尝试此操作。

尝试重新启动您的Android Studio以及您的计算机。众所周知,Android Studio偶尔会表现得很愚蠢。


推荐