web-dev-qa-db-ja.com

クラスCollapsingToolbarLayoutの膨張エラー

Android.support.design.widget.CollapsingToolbarLayoutクラスを膨らませるエラーのため、CollapsingToolbarLayoutがクラッシュします。

先週、Androidスタジオを更新しました。更新前は正常に動作しました。更新後、クラッシュしました。しかし、バージョン2.0.0にダウングレードしようとしましたが、もう動作しません。同僚はCollapsingToolbarLayoutに問題はありません。

エラーは:

Java.lang.RuntimeException: Unable to start activity ComponentInfo{com.test.Android/com.test.Android.ui.activity.RandomActivity}: Android.view.InflateException: Binary XML file line #22: Error inflating class Android.support.design.widget.CollapsingToolbarLayout
                                                                      at Android.app.ActivityThread.performLaunchActivity(ActivityThread.Java:2325)
                                                                      at Android.app.ActivityThread.handleLaunchActivity(ActivityThread.Java:2387)
                                                                      at Android.app.ActivityThread.access$800(ActivityThread.Java:151)
                                                                      at Android.app.ActivityThread$H.handleMessage(ActivityThread.Java:1303)
                                                                      at Android.os.Handler.dispatchMessage(Handler.Java:102)
                                                                      at Android.os.Looper.loop(Looper.Java:135)
                                                                      at Android.app.ActivityThread.main(ActivityThread.Java:5254)
                                                                      at Java.lang.reflect.Method.invoke(Native Method)
                                                                      at Java.lang.reflect.Method.invoke(Method.Java:372)
                                                                      at com.Android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.Java:903)
                                                                      at com.Android.internal.os.ZygoteInit.main(ZygoteInit.Java:698)
                                                                   Caused by: Android.view.InflateException: Binary XML file line #22: Error inflating class Android.support.design.widget.CollapsingToolbarLayout
                                                                      at Android.view.LayoutInflater.createView(LayoutInflater.Java:633)
                                                                      at Android.view.LayoutInflater.createViewFromTag(LayoutInflater.Java:743)
                                                                      at Android.view.LayoutInflater.rInflate(LayoutInflater.Java:806)
                                                                      at Android.view.LayoutInflater.rInflate(LayoutInflater.Java:809)
                                                                      at Android.view.LayoutInflater.rInflate(LayoutInflater.Java:809)
                                                                      at Android.view.LayoutInflater.inflate(LayoutInflater.Java:504)
                                                                      at Android.view.LayoutInflater.inflate(LayoutInflater.Java:414)
                                                                      at Android.view.LayoutInflater.inflate(LayoutInflater.Java:365)
                                                                      at Android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.Java:276)
                                                                      at Android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.Java:136)
                                                                      at com.test.Android.ui.activity.RefreshableActivity.onCreate(RefreshableActivity.Java:31)
                                                                      at Android.app.Activity.performCreate(Activity.Java:5990)
                                                                      at Android.app.Instrumentation.callActivityOnCreate(Instrumentation.Java:1106)
                                                                      at Android.app.ActivityThread.performLaunchActivity(ActivityThread.Java:2278)
                                                                      at Android.app.ActivityThread.handleLaunchActivity(ActivityThread.Java:2387) 
                                                                      at Android.app.ActivityThread.access$800(ActivityThread.Java:151) 
                                                                      at Android.app.ActivityThread$H.handleMessage(ActivityThread.Java:1303) 
                                                                      at Android.os.Handler.dispatchMessage(Handler.Java:102) 
                                                                      at Android.os.Looper.loop(Looper.Java:135) 
                                                                      at Android.app.ActivityThread.main(ActivityThread.Java:5254) 
                                                                      at Java.lang.reflect.Method.invoke(Native Method) 
                                                                      at Java.lang.reflect.Method.invoke(Method.Java:372) 
                                                                      at com.Android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.Java:903) 
                                                                      at com.Android.internal.os.ZygoteInit.main(ZygoteInit.Java:698) 
                                                                   Caused by: Java.lang.reflect.InvocationTargetException
                                                                      at Java.lang.reflect.Constructor.newInstance(Native Method)
                                                                      at Java.lang.reflect.Constructor.newInstance(Constructor.Java:288)
                                                                      at Android.view.LayoutInflater.createView(LayoutInflater.Java:607)
                                                                      at Android.view.LayoutInflater.createViewFromTag(LayoutInflater.Java:743) 
                                                                      at Android.view.LayoutInflater.rInflate(LayoutInflater.Java:806) 
                                                                      at Android.view.LayoutInflater.rInflate(LayoutInflater.Java:809) 
                                                                      at Android.view.LayoutInflater.rInflate(LayoutInflater.Java:809) 
                                                                      at Android.view.LayoutInflater.inflate(LayoutInflater.Java:504) 
                                                                      at Android.view.LayoutInflater.inflate(LayoutInflater.Java:414) 
                                                                      at Android.view.LayoutInflater.inflate(LayoutInflater.Java:365) 
                                                                      at Android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.Java:276) 
                                                                      at Android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.Java:136) 
                                                                      at com.test.Android.ui.activity.RefreshableActivity.onCreate(RefreshableActivity.Java:31) 
                                                                      at Android.app.Activity.performCreate(Activity.Java:5990) 
                                                                      at Android.app.Instrumentation.callActivityOnCreate(Instrumentation.Java:1106) 
                                                                      at Android.app.ActivityThread.performLaunchActivity(ActivityThread.Java:2278) 
                                                                      at Android.app.ActivityThread.handleLaunchActivity(ActivityThread.Java:2387) 
                                                                      at Android.app.ActivityThread.access$800(ActivityThread.Java:151) 
                                                                      at Android.app.ActivityThread$H.handleMessage(ActivityThread.Java:1303) 
                                                                      at Android.os.Handler.dispatchMessage(Handler.Java:102) 
                                                                      at Android.os.Looper.loop(Looper.Java:135) 
                                                                      at Android.app.ActivityThread.main(ActivityThread.Java:5254) 
                                                                      at Java.lang.reflect.Method.invoke(Native Method) 
                                                                      at Java.lang.reflect.Method.invoke(Method.Java:372) 
                                                                      at com.Android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.Java:903) 
                                                                      at com.Android.internal.os.ZygoteInit.main(ZygoteInit.Java:698) 
                                                                   Caused by: Java.lang.NoSuchMethodError: No static method setLayoutDirection(Landroid/graphics/drawable/Drawable;I)V in class Landroid/support/v4/graphics/drawable/DrawableCompat; or its super classes (declaration of 'Android.support.v4.graphics.drawable.DrawableCompat' appears in /data/app/com.test.Android-1/base.apk)
                                                                      at Android.support.design.widget.CollapsingToolbarLayout.setStatusBarScrim(CollapsingToolbarLayout.Java:663)
                                                                      at Android.support.design.widget.CollapsingToolbarLayout.<init>(CollapsingToolbarLayout.Java:197)
                                                                      at Android.support.design.widget.CollapsingToolbarLayout.<init>(CollapsingToolbarLayout.Java:132)
                                                                      at Java.lang.reflect.Constructor.newInstance(Native Method) 
                                                                      at Java.lang.reflect.Constructor.newInstance(Constructor.Java:288) 
                                                                      at Android.view.LayoutInflater.createView(LayoutInflater.Java:607) 
                                                                      at Android.view.LayoutInflater.createViewFromTag(LayoutInflater.Java:743) 
                                                                      at Android.view.LayoutInflater.rInflate(LayoutInflater.Java:806) 
                                                                      at Android.view.LayoutInflater.rInflate(LayoutInflater.Java:809) 
                                                                      at Android.view.LayoutInflater.rInflate(LayoutInflater.Java:809) 
                                                                      at Android.view.LayoutInflater.inflate(LayoutInflater.Java:504) 
                                                                      at Android.view.LayoutInflater.inflate(LayoutInflater.Java:414) 
                                                                      at Android.view.LayoutInflater.inflate(LayoutInflater.Java:365) 
                                                                      at Android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.Java:276) 
                                                                      at Android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.Java:136) 
                                                                      at com.test.Android.ui.activity.RefreshableActivity.onCreate(RefreshableActivity.Java:31) 
                                                                      at Android.app.Activity.performCreate(Activity.Java:5990) 
                                                                      at Android.app.Instrumentation.callActivityOnCreate(Instrumentation.Java:1106) 
                                                                      at Android.app.ActivityThread.performLaunchActivity(ActivityThread.Java:2278) 
                                                                      at Android.app.ActivityThread.handleLaunchActivity(ActivityThread.Java:2387) 
                                                                      at Android.app.ActivityThread.access$800(ActivityThread.Java:151) 
                                                                      at Android.app.ActivityThread$H.handleMessage(ActivityThread.Java:1303) 
                                                                      at Android.os.Handler.dispatchMessage(Handler.Java:102) 
                                                                      at Android.os.Looper.loop(Looper.Java:135) 
                                                                      at Android.app.ActivityThread.main(ActivityThread.Java:5254) 
                                                                      at Java.lang.reflect.Method.invoke(Native Method) 
                                                                      at Java.lang.reflect.Method.invoke(Method.Java:372)

CollapsingToolbarLayoutは次のとおりです。

<Android.support.design.widget.CoordinatorLayout
    Android:layout_width="match_parent"
    Android:layout_height="match_parent"
    >

    <Android.support.design.widget.AppBarLayout
        Android:id="@+id/appbar"
        Android:layout_width="match_parent"
        Android:layout_height="wrap_content"
        Android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
        >

        <Android.support.design.widget.CollapsingToolbarLayout
            Android:id="@+id/collapsing_toolbar"
            Android:layout_width="match_parent"
            Android:layout_height="match_parent"
            Android:clickable="true"
            app:contentScrim="@color/blue"
            app:statusBarScrim="@color/blue_dark"
            app:layout_scrollFlags="scroll|exitUntilCollapsed|snap"
            >

            <include layout="@layout/layout_page" />

            <Android.support.v7.widget.Toolbar
                Android:id="@+id/toolbar"
                Android:layout_width="match_parent"
                Android:layout_height="?attr/actionBarSize"
                app:layout_collapseMode="pin"
                />

        </Android.support.design.widget.CollapsingToolbarLayout>

    </Android.support.design.widget.AppBarLayout>

    <include
        layout="@layout/layout"
        Android:layout_width="match_parent"
        Android:layout_height="match_parent"
        app:layout_behavior="@string/appbar_scrolling_view_behavior"
        />

</Android.support.design.widget.CoordinatorLayout>

私のgradleファイルは次のとおりです。

compile 'com.google.Android.gms:play-services:9.0.0'
compile 'com.Android.support:recyclerview-v7:23.4.0'
compile 'com.Android.support:support-v13:23.4.0'
compile 'com.Android.support:appcompat-v7:23.4.0'
compile 'com.Android.support:cardview-v7:23.4.0'
compile 'com.Android.support:customtabs:23.4.0'
compile 'com.Android.support:design:23.4.0'

皆さん、何かご存知ですか?ありがとう。

22
Shumin

私はそれを試して動作するように解決策を見つけました:

gradleビルドファイルに以下のコードを追加します

compile ('com.Android.support:support-v4:23.4.0'){
    force = true;
}

バージョンの競合の問題があるようです。すべてのサポートライブラリは同じバージョンである必要があります。ただし、以前はv4サポートライブラリを使用していなかったため、機能します。 updatimg Android studio to 2.1.1が原因で問題が発生する理由はわかりません。すべてのv4ライブラリを他のサポートライブラリと同じにするだけです。

38
Shumin

私はすでに受け入れられた答えがあることを知っていますが、それは機能していません(または機能していません)。

私はこのエラーについて調査するために数時間を費やしましたが、私が思いついたのはこれです。

まず、Android Nougat Android 7.0(API 24)compileSdkVersion 24が利用可能になりました。これを行うには、更新する必要があります。 SDK ステップ1

enter image description here

第二に、gradleファイルを更新することです(インターネット接続が必要です)。 ステップ2

enter image description here

App.gradleのこの部分も更新します

enter image description here

3番目(オプション)Clean Project、Build Project(両方ともBuildタブの下)

これが誰かの助けになり、数時間の研究に費やすことを願っています。

乾杯/ハッピーコーディング

17
ralphgabb

私は2つの解決策を見つけました

最初は

app:statusBarScrim="@null"

2番目はアプリを強制することです

compile ('com.Android.support:support-v4:23.4.0') {
    force = true;
}

here から取得したソース

3
Numan Turkeri

私も同じ問題を抱えていました。@ Shuminのコードも効果的ですが、競合をバイパスするのではなく、削除する方が良いです。競合を見つけるには-

  1. Android StudioでTerminalを開き、gradlew app:dependenciesと入力します。 Terminal Image

  2. 依存関係ツリーを確認し、競合を引き起こしているライブラリを確認してください Dependencies

更新:-競合を確認するには、各ライブラリの依存関係を確認し、他のライブラリで同じ依存関係を使用しているかどうかを確認しますバージョン。たとえば、次の画像では、com.Android.support:appcompat-v7com.Android.support:support-vector-drawable:23.4.0に依存しています。 com.Android.support:support-vector-drawableに依存する他のライブラリを見つけたが、バージョンが異なる場合は、競合が見つかりました。

1
Rohan Kandwal

これは私のために働いた。次のようにappcompactを変更し、librayバージョンを設計します。

compile 'com.Android.support:appcompat-v7:23.1.1'
compile 'com.Android.support:design:23.1.1'
0

menifiest.xmlに以下のコードを追加してください。

 <activity Android:name=".MainActivity"
        Android:theme="@style/AppTheme.NoActionBar">
        <intent-filter>
            <action Android:name="Android.intent.action.MAIN" />

            <category Android:name="Android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

およびスタイルリソースファイル

<style name="AppTheme.NoActionBar">
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
</style>
0
RkKhanpuriya

Oreoまたは上位SDKで作業しており、CollapsingToolbarのドロアブルを使用している場合、このドロアブルが通常のドロアブルフォルダーおよびdrawable-v24フォルダーに存在することを確認してください。

ドロアブルがdrawable-v24フォルダーにのみあり、Oreo sdkの下でアプリを実行している場合、Android Studio logcatは「CollapsingToolbar」が、実際の問題は、ドロアブルフォルダーにいくつかのドロアブルがありません。

0
TeachMeJava

こんにちは、私はこの問題に直面しています

ただ作る

compileSdkVersion 25
buildToolsVersion "25.0.2"

そして、すべてが25.1.1へのgradleの変更をサポートしていますが、私にとってはうまくいきます。

0
Maulik Santoki

CollapsingToolbarの膨張中に同じエラーを示す同じ問題が発生しました。アプリのgradleファイルに次の依存関係がありました

compile 'com.Android.support:appcompat-v7:23.4.0'
compile 'com.Android.support:design:23.4.0'
compile 'com.Android.support:recyclerview-v7:23.4.0'
compile 'com.Android.support:cardview-v7:23.4.0'
compile 'com.google.firebase:firebase-ads:10.0.1'

aPI 23 SDKでコンパイルされたビルドツール25.0.2。私は依存関係をチェックし、firebaseが使用することを発見しました

Android:support:support-v4:24.0.0

そして、appcompatは

Android:support:support-v4-23.4.0 -> 24.0

したがって、すべてのビルドライブラリ番号を

compile 'com.Android.support:appcompat-v7:24.0.0'
compile 'com.Android.support:design:24.0.0'
compile 'com.Android.support:recyclerview-v7:24.0.0'
compile 'com.Android.support:cardview-v7:24.0.0'
compile 'com.google.firebase:firebase-ads:10.0.1'

今ではうまくいきました。耐久性は?わからない。

0
joshiparas

私の問題は、サポートライブラリのgradleインポートのすべてが同じではないことです。たとえば、

  compile('com.Android.support:recyclerview-v7:23.4.0') {
        exclude module: 'support-v4'
    }
  compile 'com.Android.support:support-annotations:24.0.0'

すべてのインポートが24.0.0は、アプリケーションを問題なく実行できるようにしました。

0
AllDayAmazing