web-dev-qa-db-ja.com

android-サポートライブラリ23.2.0により、アプリがクラッシュします

私のアプリはサポートライブラリ23.1.0または23.1.1でうまく機能しますが、23.2.0を使い始めると、起動時にクラッシュします。私は5つのサポートライブラリを使用していますが、クラッシュするように見えるのは次の2つです。

com.Android.support:appcompat-v7:23.2.0

com.Android.support:design:23.2.0

この問題はギャラクシーネクサス(API 17)で発生しますが、Nexus 7(API 22)では発生しません。何が問題なのか誰か知っていますか?これが私のgradleファイルです:

apply plugin: 'com.Android.application'

Android {
    compileSdkVersion 23
    buildToolsVersion "23.0.2"

    defaultConfig {
        applicationId "com.ikarirobotics.aichordfinder"
        minSdkVersion 15
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
    }
    buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-Android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.Android.support:support-annotations:23.2.0'
    compile "com.Android.support:appcompat-v7:23.2.0"
    compile 'com.Android.support:design:23.2.0'
    compile 'com.Android.support:cardview-v7:23.2.0'
    compile 'com.Android.support:recyclerview-v7:23.2.0'
}

私のレイアウトは、現在適切なフラグメントを配置するフレームのみです。

<FrameLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
    xmlns:tools="http://schemas.Android.com/tools"
    Android:id="@+id/fragment_container"
    Android:layout_width="match_parent"
    Android:layout_height="match_parent"
    tools:context="HomeActivity"
    tools:ignore="MergeRootFrame" />

デバッガーを使用して、メインアクティビティがsetContentView()を呼び出すとクラッシュが発生することを発見できました。

Java.lang.reflect.InvocationTargetException

Java.lang.RuntimeException:アクティビティを開始できませんComponentInfo {com.ikarirobotics.aichordfinder/com.ikarirobotics.aichordfinder.HomeActivity}:Android.view.InflateException:バイナリXMLファイル行#36:クラスAndroid.support.v7.widgetの拡張エラー。ツールバー

私のアクティビティはAppCompatActivityを拡張し、サポートアクションバーを利用します。この問題を解決する方法について何かアイデアはありますか? :(

14
CesarPim

ここの何人かの人々によって予測されたように、私が23.2.1サポートライブラリを使い始めたとき、問題は消えました。応援よろしくお願いします。

1
CesarPim

23.2.0リリースでGoogleで作業されているため、描画可能なミューテーションのバグがあるようです。 ここの問題を参照してください。 23.1.1に戻すことは、次のバグ修正リリースまで問題ないはずです。

5
opt05

同じことが私にも起こります。 support:designで23.1.1に戻るように部分的に修正しました。

@CesarPimはい、そうです。CheckBoxにも同じ問題がありますが、ドローアブルフォルダー内にabc_btn_check_material.xmlを作成し、次の行を追加することでその問題を修正できます。ドローアブルとセレクターコードは次のリンクにあります: https://github.com/NativeScript/nativescript-plugin-appcompat/tree/master/platforms/Android/appcompat/res/drawable

<?xml version="1.0" encoding="utf-8"?>

<selector xmlns:Android="http://schemas.Android.com/apk/res/Android">
    <item Android:state_checked="true" Android:drawable="@drawable/abc_btn_check_to_on_mtrl_015" />
    <item Android:drawable="@drawable/abc_btn_check_to_on_mtrl_000" />
</selector>
2
DoubleK

自分で問題が発生しました。 SDK Managerを介したクイックアップデートにより、問題が解決したようです。

ちなみに、build.gradleの依存関係で実際に23.2.0を使用したものはありませんでしたが、それでもエラーが発生しました。私はすでにそのバージョンを使用していたので、23.1.1に「ダウングレード」しようとすることは私にとって選択肢ではありませんでした。

1
PGMacDesign