アプリがクラッシュしたのは
Android.support.design.widget.FloatingActionButtonクラスの膨張エラー
これはXMLの私のコードです
<Android.support.design.widget.FloatingActionButton
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_gravity="bottom|right"
Android:layout_margin="16dp"
Android:src="@drawable/icon_right"
app:backgroundTint="@color/green"
Android:onClick="previewphoto"
app:layout_anchorGravity="bottom|right|end" />
ここに私のグラドルがあります
compile 'com.Android.support:appcompat-v7:23.4.0' // appcompat library
compile 'com.Android.support:design:23.4.0'
私のlogcat
致命的な例外:メインプロセス:com.cyanlabsid.cetakphoto、PID:15298 Java.lang.RuntimeException:アクティビティを開始できませんComponentInfo {com.cyanlabsid.cetakphoto/com.cyanlabsid.cetakphoto.PhotoPicker}:Android.view.InflateException:Binary XMLファイル行#76:バイナリXMLファイル行#76:Android.app.ActivityThread.performLaunchActivity(ActivityThread.Java:2423)at Android.app.ActivityThread.handleLaunchActivity(ActivityThread。 Java:2483)Android.app.ActivityThread.access $ 900(ActivityThread.Java:153)at Android.app.ActivityThread $ H.handleMessage(ActivityThread.Java:1349)at Android.os.Handler.dispatchMessage(Handler.Java: 102)Android.os.Looper.loop(Looper.Java:148)at Android.app.ActivityThread.main(ActivityThread.Java:5441)at Java.lang.reflect.Method.invoke(Native Method)at com.Android .internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.Java:738)at com.Android.internal.os.ZygoteInit.main(ZygoteInit.Ja va:628)原因:Android.view.InflateException:Binary XML file line#76:Binary XML file line#76:Error inflating class Android.support.design.widget.FloatingActionButton at Android.view.LayoutInflater.inflate(LayoutInflater。 Java:543)at Android.view.LayoutInflater.inflate(LayoutInflater.Java:427)at Android.view.LayoutInflater.inflate(LayoutInflater.Java:374)at Android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.Java :284)Android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.Java:140)at com.cyanlabsid.cetakphoto.PhotoPicker.onCreate(PhotoPicker.Java:74)at Android.app.Activity.performCreate(Activity。 Java:6303)Android.app.Instrumentation.callActivityOnCreate(Instrumentation.Java:1108)at Android.app.ActivityThread.performLaunchActivity(ActivityThread.Java:2376)at Android.app.ActivityThread.handleLaunchActivity(ActivityThread.Java:2483) Android.appのAndroid.app.ActivityThread.access $ 900(ActivityThread.Java:153) .ActivityThread $ H.handleMessage(ActivityThread.Java:1349)Android.os.Handler.dispatchMessage(Handler.Java:102)Android.os.Looper.loop(Looper.Java:148)Android.app.ActivityThread main(ActivityThread.Java:5441)Java.lang.reflect.Method.invoke(Native Method)com.Android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.Java:738)com.Android.internalでos.ZygoteInit.main(ZygoteInit.Java:628)
誰かが私のせいを教えてもらえますか?
コードを試してみましたが、問題は23.4.0ライブラリにあります。
24. +にアップグレードすると、そのライブラリにエラーはありません。
例えば :
implementation 'com.Android.support:appcompat-v7:24.2.1' // appcompat library
implementation 'com.Android.support:design:24.2.1'
コンパイルバージョンも24に変更する必要があります。
compileSdkVersion 24
つかいます
app:backgroundTint
の代わりに
Android:backgroundTint
それがうまくいくことを願っています。
Android:backgroundTint
はAndroid API 21の下では機能しないため、代わりにapp:backgroundTint
を使用する必要があります。
APIレベル21以下のアプリバージョンは、
app:backgroundTint="@color/green"
または、このライブラリを使用して、より多くのマテリアルデザインウィジェットを実現できます。
ハッピーコーディング...
同じ問題がありました
Pre-Lolipopバージョンで同じ問題に直面し、それを解決するために、「Android:src」から「app:srcCompat」に変更しました。
古いバージョンとの互換性を確保し、ベクターグラフィックス(描画可能なアセットとして)を使用している場合は、次を使用する必要があります。
app:srcCompat="@drawable/you_graphics"
の代わりに:
Android:src="@drawable/your_graphics"
追加する必要があります
Android:theme = "@ style/Theme.AppCompat"
floatingActionButtonを使用しているXML_Layoutファイルで...
私は使っている:
クラスパス 'com.Android.tools.build:gradle:3.3.2'
そして
distributionUrl = https://services.gradle.org/distributions/gradle-4.10.1-all.Zip
XMLを次のように変更しました。
<com.google.Android.material.floatingactionbutton.FloatingActionButton
Android:id="@+id/fab"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_margin="16dp"
Android:clickable="true"
Android:focusable="true"
app:srcCompat="@drawable/mapit"
app:layout_anchor="@id/foundit_imageView"
app:layout_anchorGravity="bottom|right|end" />
そしてすべてが正しく構築され実行されました。
これが役立つことを願っています
アクティビティでFloatingActionButtonを宣言したライブラリが、レイアウトマークアップに使用したライブラリと同じであることを確認してください
たとえば
import com.google.Android.material.floatingactionbutton.FloatingActionButton;アクティビティおよびcom.google.Android.material.floatingactionbutton.FloatingActionButtonレイアウトのタグとして
このコードを使用すると、動作が向上します。
<Android.support.design.widget.FloatingActionButton
Android:id="@+id/fab"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_alignParentRight="true"
Android:layout_alignParentBottom="true"
Android:layout_margin="16dp"
app:backgroundTint="#f9fcfc"
Android:src="@drawable/chat_float"
tools:targetApi="Lollipop" />