在Android中夸大类android.support.design.widget.FloatingActionButton时出错 [英] Error inflating class android.support.design.widget.FloatingActionButton in Android

查看:111
本文介绍了在Android中夸大类android.support.design.widget.FloatingActionButton时出错的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当我尝试构建应用程序时,它会在FloatingActionButton中显示 android.view.InflateException 吗?我真的不知道是什么原因导致了错误。

When I'm trying to build the application it will show the android.view.InflateException in FloatingActionButton? I really don't know what causes the error.

Login.xml

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

<android.support.design.widget.CoordinatorLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true"
    android:background="@drawable/bg_image" >
<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <LinearLayout
        android:id="@+id/lLayout_logincontainer"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:layout_margin="40dp"
        android:orientation="vertical">
        <ImageView
            android:layout_width="130dp"
            android:layout_height="125dp"
            android:src="@drawable/project"/>

        <android.support.design.widget.TextInputLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="20dp">


            <EditText
                android:id="@+id/aTxt_UserName"
                style="@style/edittextstyle"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:hint="User Name"
                android:imeOptions="actionNext"
                android:textColorHint="@color/white"
                >

            </EditText>


        </android.support.design.widget.TextInputLayout>

        <!--  Password Label -->
        <android.support.design.widget.TextInputLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginBottom="8dp"
            android:layout_marginTop="8dp">

            <EditText
                android:id="@+id/eTxt_PassWord"
                style="@style/edittextstyle"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:hint="Password"
                android:inputType="textPassword"
                android:textColorHint="@color/white"
                android:textColor="@color/white" />

        </android.support.design.widget.TextInputLayout>

        <android.support.v7.widget.AppCompatButton
            android:id="@+id/btn_login"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="left"
            android:layout_marginTop="3dp"
            android:background="@drawable/button_shape"
            android:padding="12dp"
            android:text="Login"
            android:textAllCaps="false"
            android:textColor="#ffffff" />
    </LinearLayout>


</RelativeLayout>
    <android.support.design.widget.FloatingActionButton
        android:id="@+id/fab"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginBottom="20dp"
        android:layout_gravity="bottom|end"
        android:layout_marginRight="@dimen/fab_margin"
        android:visibility="visible"
        app:backgroundTint="@color/colorTrade_2"
        app:elevation="6dp"
        app:pressedTranslationZ="12dp"
        app:fabSize="normal"
        app:rippleColor="@android:color/transparent"
        android:src="@drawable/ic_user_add" />

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

styles.xml

styles.xml

<resources>
    <style name="AppBaseTheme" parent="MyMaterialTheme.Base">
       </style>
    <style name="MyMaterialTheme.Base" parent="Theme.AppCompat.Light.DarkActionBar">
        <item name="windowNoTitle">true</item>
        <item name="windowActionBar">false</item>
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
        <item name="android:textColor">@color/colorPrimaryDark</item>
        <item name="android:itemBackground">@color/white</item>
    </style>
    <style name="AppTheme.NoActionBar">
        <item name="windowActionBar">false</item>
        <item name="windowNoTitle">true</item>
    </style>
    <style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" />
    <style name="AppTabTextAppearance" parent="TextAppearance.Design.Tab">
        <item name="android:textSize">12sp</item>
        <item name="textAllCaps">false</item>
    </style>
    <style name="AppTheme.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" />
    <style name="edittextstyle">
        <item name="android:textColor">@color/white</item>
        <item name="android:textSize">14sp</item>
        <item name="android:padding">10dp</item>
        <item name="android:singleLine">true</item>
        <item name="android:textColorHint">@color/white</item>
        <item name="android:inputType">textFilter</item>
    </style>
    <style name="userProfileText">
        <item name="android:textColor">@color/white</item>
        <item name="android:textSize">14sp</item>
        <item name="android:padding">5dp</item>
    </style>
</resources>

AndroidManifest.xml

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest
xmlns:android="http://schemas.android.com/apk/res/android" package="com.trade.seems">
<uses-library android:name="com.google.android.maps" android:required="true" />
<application android:allowBackup="true"
    android:name=".utils.MyApplication"
             android:isolatedProcess="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:supportsRtl="true"
    android:largeHeap="true"
    android:theme="@style/AppTheme">
    <meta-data android:name="com.google.android.gms.version"
        android:value="@integer/google_play_services_version" />
    <meta-data android:name="com.google.android.geo.API_KEY"
        android:value="@string/google_api_key" />
    <activity android:name=".uil.SplashActivity"
        android:screenOrientation="sensorPortrait">
         <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
    </activity>
    <activity android:name=".ual.login.LoginActivity"
        android:screenOrientation="sensorPortrait"/>
</application>
</manifest>

build.gradle

apply plugin: 'com.android.application'
android {
    compileSdkVersion 23
    buildToolsVersion '23.0.3'
    useLibrary 'org.apache.http.legacy'
    defaultConfig {
        applicationId "com.trade.seems"
        minSdkVersion 16
        targetSdkVersion 23
        versionCode 1
        versionName "1.0"
        multiDexEnabled true

    }
    packagingOptions {
        exclude 'META-INF/DEPENDENCIES.txt'
        exclude 'META-INF/LICENSE.txt'
        exclude 'META-INF/NOTICE.txt'
        exclude 'META-INF/NOTICE'
        exclude 'META-INF/LICENSE'
        exclude 'META-INF/DEPENDENCIES'
        exclude 'META-INF/notice.txt'
        exclude 'META-INF/license.txt'
        exclude 'META-INF/dependencies.txt'
        exclude 'META-INF/maven/ch.acra/acra/pom.xml'
        exclude 'META-INF/maven/ch.acra/acra/pom.properties'

    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
        debug {
        }
    }
    dexOptions {
        javaMaxHeapSize "2g"
    }
}

dependencies {
    testCompile 'junit:junit:4.12'
    compile files('libs/picasso-2.5.2.jar')
    compile files('libs/httpclient-4.3.6.jar')
    compile files('libs/httpcore-4.3.3.jar')
    compile files('libs/httpmime-4.3.6.jar')
    compile files('libs/YouTubeAndroidPlayerApi.jar')
    compile fileTree(include: ['*.jar'], dir: 'libs')
    /*Support Libraries */
    compile project(':autocomplete_library')
    compile project(':ViewPagerIndicator-Library')
    /*Third party Libraries */
    compile 'es.guiguegon:gallerymodule:1.3.1'
    compile 'de.hdodenhof:circleimageview:2.0.0'
    compile 'com.nineoldandroids:library:2.4.+'
    compile 'com.makeramen:roundedimageview:2.0.1'
    //Library to handle Material design for all Version of android
    compile 'com.rengwuxian.materialedittext:library:2.1.4'
    //Library Glide is to handle Images Instead of picasso
    compile 'com.github.bumptech.glide:glide:3.5.2'
    compile 'com.mcxiaoke.volley:library-aar:1.0.0'


    /*Google  Android Support Library*/
    compile 'com.google.android.gms:play-services-maps:9.4.0'
    compile 'com.google.android.gms:play-services-location:9.4.0'
    compile 'com.android.support:multidex:1.0.0'
    compile 'com.android.support:appcompat-v7:23.1.1'
    compile 'com.android.support:design:23.1.1'
    compile 'com.android.support:cardview-v7:23.1.1'
    compile 'com.android.support:recyclerview-v7:23.1.1'
    compile 'com.android.support:support-v4:23.1.1' 
}

完成错误跟踪

com.trade.seems E/AndroidRuntime: FATAL EXCEPTION: main Process: com.trade.seemys, PID: 8225 java.lang.RuntimeException: Unable to start activityComponentInfo{com.tradezap.seemysteps/com.trade.seems.ual.login.LoginActivity}: android.view.InflateException: Binary XML file line #84: Binary XML file line #84: Error inflating class android.support.design.widget.FloatingActionButton
                                                                               at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2416)
                                                                               at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)
                                                                               at android.app.ActivityThread.-wrap11(ActivityThread.java)
                                                                               at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)
                                                                               at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                               at android.os.Looper.loop(Looper.java:148)
                                                                               at android.app.ActivityThread.main(ActivityThread.java:5417)
                                                                               at java.lang.reflect.Method.invoke(Native Method)
                                                                               at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
                                                                               at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
                                                                            Caused by: android.view.InflateException: Binary XML file line #84: Binary XML file line #84: Error inflating class android.support.design.widget.FloatingActionButton
                                                                               at android.view.LayoutInflater.inflate(LayoutInflater.java:539)
                                                                               at android.view.LayoutInflater.inflate(LayoutInflater.java:423)
                                                                               at android.view.LayoutInflater.inflate(LayoutInflater.java:374)
                                                                               at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:284)
                                                                               at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140)
                                                                               at com.trade.seems.ual.login.LoginActivity.onCreate(LoginActivity.java:55)
                                                                               at android.app.Activity.performCreate(Activity.java:6251)
                                                                               at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107)
                                                                               at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369)
                                                                               at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476) 
                                                                               at android.app.ActivityThread.-wrap11(ActivityThread.java) 
                                                                               at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344) 
                                                                               at android.os.Handler.dispatchMessage(Handler.java:102) 
                                                                               at android.os.Looper.loop(Looper.java:148) 
                                                                               at android.app.ActivityThread.main(ActivityThread.java:5417) 
                                                                               at java.lang.reflect.Method.invoke(Native Method) 
                                                                               at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
                                                                               at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 
                                                                            Caused by: android.view.InflateException: Binary XML file line #84: Error inflating class android.support.design.widget.FloatingActionButton
                                                                               at android.view.LayoutInflater.createView(LayoutInflater.java:645)
                                                                               at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:764)
                                                                               at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704)
                                                                               at android.view.LayoutInflater.rInflate(LayoutInflater.java:835)
                                                                               at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798)
                                                                               at android.view.LayoutInflater.inflate(LayoutInflater.java:515)
                                                                               at android.view.LayoutInflater.inflate(LayoutInflater.java:423) 
                                                                               at android.view.LayoutInflater.inflate(LayoutInflater.java:374) 
                                                                               at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:284) 
                                                                               at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140) 
                                                                               at com.trade.seems.ual.login.LoginActivity.onCreate(LoginActivity.java:55) 
                                                                               at android.app.Activity.performCreate(Activity.java:6251) 
                                                                               at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107) 
                                                                               at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369) 
                                                                               at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476) 
                                                                               at android.app.ActivityThread.-wrap11(ActivityThread.java) 
                                                                               at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344) 
                                                                               at android.os.Handler.dispatchMessage(Handler.java:102) 
                                                                               at android.os.Looper.loop(Looper.java:148) 
                                                                               at android.app.ActivityThread.main(ActivityThread.java:5417) 
                                                                               at java.lang.reflect.Method.invoke(Native Method) 
                                                                               at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
                                                                               at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 
                                                                            Caused by: java.lang.reflect.InvocationTargetException
                                                                               at java.lang.reflect.Constructor.newInstance(Native Method)
                                                                               at android.view.LayoutInflater.createView(LayoutInflater.java:619)
                                                                               at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:764) 
                                                                               at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704) 
                                                                               at android.view.LayoutInflater.rInflate(LayoutInflater.java:835) 
                                                                               at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798) 
                                                                               at android.view.LayoutInflater.inflate(LayoutInflater.java:515) 
                                                                               at android.view.LayoutInflater.inflate(LayoutInflater.java:423) 
                                                                               at android.view.LayoutInflater.inflate(LayoutInflater.java:374) 
                                                                               at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:284) 
                                                                               at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140) 
                                                                               at com.trade.seems.ual.login.LoginActivity.onCreate(LoginActivity.java:55) 
                                                                               at android.app.Activity.performCreate(Activity.java:6251) 
                                                                               at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107) 
                                                                               at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369) 
                                                                               at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476) 
                                                                               at android.app.ActivityThread.-wrap11(ActivityThread.java) 
                                                                               at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344) 
                                                                               at android.os.Handler.dispatchMessage(Handler.java:102) 
                                                                               at android.os.Looper.loop(Looper.java:148) 
                                                                               at android.app.ActivityThread.main(ActivityThread.java:5417) 
                                                                               at java.lang.reflect.Method.invoke(Native Method) 
                                                                               at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
                                                                               at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 
                                                                            Caused by: java.lang.NoSuchMethodError: No direct method <init>(Landroid/widget/ImageView;Landroid/support/v7/widget/AppCompatDrawableManager;)V in class Landroid/support/v7/widget/AppCompatImageHelper; or its super classes (declaration of 'android.support.v7.widget.AppCompatImageHelper' appears in /data/app/com.tradezap.seemysteps-1/base.apk)
                                                                               at android.support.design.widget.FloatingActionButton.<init>(FloatingActionButton.java:133)
                                                                               at android.support.design.widget.FloatingActionButton.<init>(FloatingActionButton.java:110)
                                                                               at java.lang.reflect.Constructor.newInstance(Native Method) 
                                                                               at android.view.LayoutInflater.createView(LayoutInflater.java:619) 
                                                                               at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:764) 
                                                                               at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704) 
                                                                               at android.view.LayoutInflater.rInflate(LayoutInflater.java:835) 
                                                                               at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:798) 
                                                                               at android.view.LayoutInflater.inflate(LayoutInflater.java:515) 
                                                                               at android.view.LayoutInflater.inflate(LayoutInflater.java:423) 
                                                                               at android.view.LayoutInflater.inflate(LayoutInflater.java:374) 
                                                                               at android.support.v7.app.AppCompatDelegateImplV9.setContentView(AppCompatDelegateImplV9.java:284) 
                                                                               at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140) 
                                                                               at com.trade.seems.ual.login.LoginActivity.onCreate(LoginActivity.java:55) 
                                                                               at android.app.Activity.performCreate(Activity.java:6251) 
                                                                               at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107) 
                                                                               at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369) 
                                                                               at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476) 
                                                                               at android.app.ActivityThread.-wrap11(ActivityThread.java) 
                                                                               at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344) 
                                                                               at android.os.Handler.dispatchMessage(Handler.java:102) 
                                                                               at android.os.Looper.loop(Looper.java:148) 
                                                                               at android.app.ActivityThread.main(ActivityThread.java:5417) 
                                                                               at java.lang.reflect.Method.invoke(Native Method) 
                                                                               at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
                                                                               at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 


推荐答案

在您的案例中,问题出在您的styles.xml中,您的基本主题名称是AppBaseTheme。正如您看到的那样,将其更改为AppTheme可以看到您在Mainfest文件中使用了AppTheme。

In your Case, Problem is in your styles.xml, your base theme name is AppBaseTheme. Change it to AppTheme as you can see you have used AppTheme in your Mainfest file.

我已列出了可能导致android.support.design.widget类的所有原因。 FloatingActionButton。请仔细阅读要点。

I have listed all the reasons that may cause class android.support.design.widget.FloatingActionButton. Please read the points carefully.


  1. FAB按钮是设计库的组成部分。您的活动必须扩展 AppCompatActivity 而不是 Activity

您的活动主题也应适当 Theme.AppCompat 主题。 FAB还需要colorAccent。确保将它们包含在styles.xml中。

Your activity theme also should be appropriate Theme.AppCompat theme. Also FAB requires colorAccent. Make sure you have them inside your styles.xml.

<!-- Base application theme. -->
<style name="AppTheme" parent="Base.AppTheme">
<!-- Customize your theme here. -->
</style>

<style name="Base.AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="android:colorPrimary">@color/primary</item>
<item name="android:colorPrimaryDark">@color/primary_dark</item>
<item name="android:colorAccent">@color/accent</item>
</style>


  • 使用 app:backgroundTint = @ color / your_color

    不要错过在项目build.gradle文件中添加设计库的机会

    Don't miss out on adding design library inside your project build.gradle file

    dependencies {
     compile 'com.android.support:appcompat-v7:23.1.1'
     compile 'com.android.support:design:23.1.1'
     ...
    }
    


  • 更新支持在Extras> Android支持存储库和Android支持库中的SDK Manager上的库

  • Update Support Library on SDK Manager in Extras > Android Support Repository and Android Support Library

    希望它可以解决您的错误。

    Hope it solves your error.

    这篇关于在Android中夸大类android.support.design.widget.FloatingActionButton时出错的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

  • 查看全文
    相关文章
    登录 关闭
    扫码关注1秒登录
    发送“验证码”获取 | 15天全站免登陆