私のアプリはサポートライブラリ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を拡張し、サポートアクションバーを利用します。この問題を解決する方法について何かアイデアはありますか? :(
ここの何人かの人々によって予測されたように、私が23.2.1サポートライブラリを使い始めたとき、問題は消えました。応援よろしくお願いします。
23.2.0リリースでGoogleで作業されているため、描画可能なミューテーションのバグがあるようです。 ここの問題を参照してください。 23.1.1に戻すことは、次のバグ修正リリースまで問題ないはずです。
同じことが私にも起こります。 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>
自分で問題が発生しました。 SDK Managerを介したクイックアップデートにより、問題が解決したようです。
ちなみに、build.gradleの依存関係で実際に23.2.0を使用したものはありませんでしたが、それでもエラーが発生しました。私はすでにそのバージョンを使用していたので、23.1.1に「ダウングレード」しようとすることは私にとって選択肢ではありませんでした。