2

アプリケーションをビルドしようとすると、FloatingActionButtonにandroid.view.InflateExceptionが表示されますか?私は本当にエラーの原因を知りません。Androidでクラスandroid.support.design.widget.FloatingActionButtonを拡張する際にエラーが発生しました。

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

<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

<?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)  
+0

@TimCastelijnsができていますどちらが私が逃したのかをご案内します。 –

+0

あなたのファブボタンがあるxmlコードを追加してください。 –

+0

FloatingActionButtonを使用してレイアウトファイルを投稿することはできますか? – Raghavendra

答えて

8

、問題はあなたのstyles.xmlにある、お使いのベーステーマ名はAppBaseThemeです。 MainfestファイルでAppThemeを使用したことがわかるように、AppThemeに変更してください。

クラスandroid.support.design.widget.FloatingActionButtonを引き起こす可能性があるすべての理由を記載しました。ポイントを注意深く読んでください。

  1. FABボタンはデザインライブラリCpmponentです。アクティビティアクティビティではなく、アクティビティを延長する必要があります。

  2. あなたのアクティビティテーマも適切である必要がありますTheme.AppCompatテーマ。また、FABにはcolorAccentが必要です。 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> 
    
  3. 使用アプリ:backgroundTint = "@カラー/ your_color"代わりにアンドロイドの:backgroundTint。

  4. dependencies { 
    compile 'com.android.support:appcompat-v7:23.1.1' 
    compile 'com.android.support:design:23.1.1' 
    ... 
    } 
    
  5. エクストラにおけるSDK Managerのアップデートサポートライブラリ> AndroidのサポートリポジトリとAndroidサポートライブラリ

プロジェクトのbuild.gradleファイル内の設計ライブラリを追加することをお見逃しなく

あなたのエラーを解決することを願っています。

+0

コードありがとうございますが、私はすでにこの種のスタイルを使用しています。 –

+0

私のプロジェクト全体がこの問題を抱えていて、FABがエラーを膨らませてしまった。ただ今、私はFABのログイン画面のデザインにコメントしました。あなたはこのような例外に直面しましたか? –

+0

いいえVishal私は古​​いコードをロールアウトして、もう一度やります。今は大きな頭痛です。 –

1

あなたはAPI 21+にbackgroundTintを使用している場合 はちょうどFloatingActionButton(appの代わりandroid)にこの行を使用します。ここでは

app:backgroundTint="@color/colorAccent" 

は、サンプルレイアウトは

<?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" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <android.support.design.widget.FloatingActionButton 
     android:id="@+id/fab" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="bottom|end" 
     android:layout_margin="@dimen/fab_margin" 
     app:elevation="6dp" 
     android:tint="#FFF" 
     app:srcCompat="@drawable/ic_add_black_24dp" /> 

</android.support.design.widget.CoordinatorLayout> 
関連する問題