如果已启用应用程序崩溃

时间:2018-01-09 17:50:12

标签: java android-studio crash

如果在我的应用程序中使用此代码启用proguard:

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

当尝试在Android Studio应用程序中以调试或正常模式运行时,只有在Play商店中发布时,应用程序才会崩溃。

崩溃时出错:

Error inflating class android.support.v7.widget.Toolbar

Caused by: android.view.InflateException: Binary XML file line #0: Binary XML file line #0: Error inflating class android.support.v7.widget.Toolbar

 Caused by: android.view.InflateException: Binary XML file line #0: Error inflating class android.support.v7.widget.Toolbar

Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.v7.widget.aj.a()' on a null object reference

我使用最新版本的support.v7:

dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    implementation 'com.android.support:appcompat-v7:27.0.2'
    implementation 'com.android.support.constraint:constraint-layout:1.0.2'
    implementation 'com.android.support:support-v4:27.0.2'
    implementation 'com.google.firebase:firebase-messaging:11.8.0'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.1'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'      
}

在今天之前所有工作正常=(

德克斯特说:

-dontwarn android.support.v7.**
-keep class android.support.v7.widget.** { *; }

它工作,但为什么任何Android工作室更新后我总是有问题?为什么Android Studio会在今天最新版本的proguard取消小部件之后?

2 个答案:

答案 0 :(得分:2)

也许proguard删除了这个类,你可以禁用proguard来避免这个错误,如果你想保留它你将不得不改变proguard设置

-dontwarn android.support.v7.**
-keep class android.support.v7.widget.** { *; }

答案 1 :(得分:1)

尝试在Gradle中添加:

android {  
    defaultConfig {  
        vectorDrawables.useSupportLibrary = true  
    }
}

执行所有项目的完全清理和重建。