我的应用程序崩溃是因为
错误类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" />
这是我的gradle
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:二进制XML文件行#76:二进制XML 文件行#76:错误类膨胀 android.support.design.widget.FloatingActionButton at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2423) 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2483) 在android.app.ActivityThread.access $ 900(ActivityThread.java:153)at android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1349) 在android.os.Handler.dispatchMessage(Handler.java:102)at 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) 在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:628)引起 by:android.view.InflateException:二进制XML文件行#76:二进制 XML文件行#76:错误类膨胀 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) 在com.cyanlabsid.cetakphoto.PhotoPicker.onCreate(PhotoPicker.java:74) 在android.app.Activity.performCreate(Activity.java:6303)at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1108) 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2376) 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2483) 在android.app.ActivityThread.access $ 900(ActivityThread.java:153)at android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1349) 在android.os.Handler.dispatchMessage(Handler.java:102)at 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) 在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:628)
有人能说出我的错吗?
答案 0 :(得分:50)
使用
app:backgroundTint
代替
android:backgroundTint
希望它能奏效。
答案 1 :(得分:19)
由于android:backgroundTint
在Android API 21下无效,因此您需要使用app:backgroundTint
。
答案 2 :(得分:12)
试过你的代码,问题在于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
答案 3 :(得分:12)
API级别21应用程序版本不支持
app:backgroundTint="@color/green"
或者您可以使用此库来实现更多材质设计小部件。
快乐的编码......
答案 4 :(得分:8)
我遇到了同样的问题
我遇到了与Pre-Lolipop版本相同的问题并解决了它,我只是将“ android:src ”改为“ app:srcCompat ”&amp;它对我有用。
为了与旧版本兼容,如果您使用矢量图形(作为可绘制资源),您应该使用:
app:srcCompat="@drawable/you_graphics"
而不是:
android:src="@drawable/your_graphics"
答案 5 :(得分:5)
您需要添加
android:theme =“ @ style / Theme.AppCompat”
在使用FloatingActionButton的XML_Layout文件中...
答案 6 :(得分:2)
我正在使用:
classpath'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" />
一切都正确构建并运行。
我希望这对您有帮助
答案 7 :(得分:2)
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/fab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="end|bottom"
android:src="@drawable/ic_add_foreground"
android:layout_margin="16dp" />
使用此
<com.google.android.material.floatingactionbutton.FloatingActionButton>
代替
<android.support.design.widget.FloatingActionButton>
答案 8 :(得分:1)
使用此代码会更好;
<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" />
答案 9 :(得分:1)
确保在活动中声明 FloatingActionButton 的库与用于布局标记的库相同
例如有
在活动中导入com.google.android.material.floatingactionbutton.FloatingActionButton; com.google.android.material.floatingactionbutton.FloatingActionButton 作为布局的标记
答案 10 :(得分:0)
我在我的ExtendedFloatingActionButton中使用了Material Design,并且在使用API 24时会导致应用崩溃。
我尝试将gradle依赖项更新为最新版本:
implementation 'androidx.appcompat:appcompat:1.2.0'
implementation 'com.google.android.material:material:1.3.0-alpha02'
但是我也没有运气。我的解决方案是添加android:theme=""
,即使我设置了样式仍然会崩溃,所以我将主题设置为与样式相同,并且效果很好。
<com.google.android.material.floatingactionbutton.ExtendedFloatingActionButton
android:id="@+id/btn_one"
android:theme="@style/"
style="@style/"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="@string/text"
android:text="@string/text"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
答案 11 :(得分:0)
添加
build.gradle(:app)
implementation 'com.google.android.material:material:1.2.0'
在XML中使用它
<com.google.android.material.floatingactionbutton.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" />