super.onCreate(savedInstanceState)在第一次运行时崩溃

时间:2017-07-12 15:02:20

标签: java android android-6.0-marshmallow android-lifecycle android-4.2-jelly-bean

Firebase崩溃报告捕获的异常:

  

异常java.lang.RuntimeException:无法启动活动   ComponentInfo {com.talmir.mickinet / com.talmir.mickinet.activities.HomeActivity}:   android.content.res.Resources $ NotFoundException:资源ID   0x7f080058 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2249)   android.app.ActivityThread.handleLaunchActivity   (ActivityThread.java:2299)android.app.ActivityThread.access $ 700   (ActivityThread.java:154)android.app.ActivityThread $ H.handleMessage   ...

     

由android.content.res.Resources $ NotFoundException引起:资源ID   0x7f080058 android.content.res.Resources.getValue(Resources.java:1883)   android.support.v7.widget.AppCompatDrawableManager.c(SourceFile:332)   android.support.v7.widget.AppCompatDrawableManager.a(SourceFile:197)   android.support.v7.widget.AppCompatDrawableManager.getDrawable   ...

HomeActivity.java

@Override
protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);
setContentView(R.layout.activity_home); // line 238
FirebaseCrash.log("HomeActivity");

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M)
    if (!canAccessCamera() || !canAccessExternalStorage() || !canAccessContacts())
        requestPermissions(INITIAL_PERMISSIONS, INITIAL_REQUEST);

copyRawFile(R.raw.file_receive);
// other codes...

activity_home.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:id="@+id/activity_home"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:paddingTop="@dimen/activity_vertical_margin"
        android:paddingBottom="@dimen/activity_vertical_margin"
        tools:context="com.talmir.mickinet.activities.HomeActivity"
        android:background="@color/snow">

    <fragment
            android:id="@+id/frag_list"
            class="com.talmir.mickinet.fragments.DeviceListFragment"
            android:layout_width="match_parent"
            android:layout_height="@dimen/phone_list_height">
    </fragment>

    <fragment
            android:id="@+id/frag_detail"
            class="com.talmir.mickinet.fragments.DeviceDetailFragment"
            android:layout_width="match_parent"
            android:layout_height="match_parent">
    </fragment>

</RelativeLayout>

的AndroidManifest.xml

<activity
    android:name=".activities.HomeActivity"
    android:configChanges="orientation|keyboardHidden"
    android:screenOrientation="portrait"
    android:theme="@style/AppTheme"
    android:label="@string/app_name">
    <intent-filter>
        <action android:name="android.intent.action.MAIN"/>
        <category android:name="android.intent.category.LAUNCHER"/>
    </intent-filter>
</activity>

的build.gradle

apply plugin: 'com.android.application'

android {
    signingConfigs {
        config {
            // my config
        }
    }
    compileSdkVersion 25
    buildToolsVersion "25.0.3"
    defaultConfig {
        applicationId "com.talmir.mickinet"
        minSdkVersion 17
        targetSdkVersion 25
        versionCode 1
        versionName "1.0"
        vectorDrawables.useSupportLibrary = true
        signingConfig signingConfigs.config
    }
    buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            debuggable false
            jniDebuggable false
            signingConfig signingConfigs.config
            renderscriptDebuggable false
            zipAlignEnabled true
        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}

dependencies {
    compile 'com.android.support:appcompat-v7:25.3.1'
    compile 'com.android.support:design:25.3.1'
    compile 'com.android.support:support-v4:25.3.1'
    compile 'com.android.support:cardview-v7:25.3.1'
    compile 'com.android.support:recyclerview-v7:25.3.1'
    compile 'com.github.paolorotolo:appintro:4.1.0'
    compile 'com.android.support:support-vector-drawable:25.3.1'
    implementation 'com.google.firebase:firebase-crash:11.0.2'
}

apply plugin: 'com.google.gms.google-services'

我测试了什么: thisthisthisthis一个。 this link中的问题看起来比我的问题更接近我的问题。

此外,API 23和API 17中安装的应用程序相同(均为物理设备),但仅在API 17(启动时)中发生错误。

主要问题:

为什么会发生此异常,我该如何解决?

2 个答案:

答案 0 :(得分:2)

当我将Android Studio从Canary 5更新为canary 6

时,会发生此异常

我返回Android Studio 2.3.2并将类路径更改回Gradle 2.3.2并解决了问题。

更新:我尝试了3个应用程序,但我得到了同样的错误,但解决了它就像描述的那样。

答案 1 :(得分:1)

我今天也遇到了同样的问题。经过一番研究,我发现了这个:

android.enableAapt2=false

将此行添加到“gradle.properties”文件中。

参考是here

我认为这是由Android Studio的最新版本(3.0 Canary 6)中的错误造成的。

  

使用AAPT2改进了增量资源处理。要启用AAPT2,请将以下内容添加到gradle.properties文件中:android.enableAapt2 = true

上面的文字来自android studio preview链接。