10

sto usando libreria di supporto di progettazioneFloating pulsante di azione e l'errore

defaultConfig { 
     vectorDrawables.useSupportLibrary = true 
     ... 
} 

dependencies { 
    compile 'com.android.support:design:23.4.0' 
    compile 'com.android.support:support-v4:23.4.0' 
    ... 
} 

quando si aggiunge FloatingActionButton

<android.support.design.widget.FloatingActionButton 
    android:layout_gravity="right" 
    android:layout_margin="20dp" 
    android:tint="#fff" 
    android:src="@drawable/ic_menu_manage" 
    app:backgroundTint="#b3000000" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" /> 

a uno dei miei layout disegno inflazione biblioteca ottengo questo errore

Caused by: java.lang.IllegalArgumentException: You need to use a Theme.AppCompat theme (or descendant) with the design library. 

Ecco la mia attività principale (it has navigation drawer)

public class MapNavActivity extends AppCompatActivity 

so che dovrebbe funzionare se cambio AppCompatActivity a Activity

Tuttavia, questo non funziona per me. Ecco l'attività definita sul file manifesto

<activity 
    android:name=".MapNavActivity" 
    android:label="@string/title_activity_map_nav" 
    android:theme="@style/AppTheme.NoActionBarMain" /> 

ed ecco il tema in file di styles.xml

<style name="AppTheme.NoActionBarMain" parent="Theme.AppCompat.Light.NoActionBar"> 
     <item name="windowActionBar">false</item> 
     <item name="windowNoTitle">true</item> 
    </style> 

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> 
     <!-- Customize your theme here. --> 
     <item name="colorPrimary">@color/colorPrimary</item> 
     <item name="colorPrimaryDark">@color/colorPrimaryDark</item> 
     <item name="colorAccent">@color/colorAccent</item> 
    </style> 

mi sono bloccato con questo problema quasi 5 ore. Qualcuno sa come risolvere questo?

EDIT file manifesto

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="rojus.zvyjybos.com.zvejybosrojus2"> 

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 
    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> 
    <uses-permission android:name="android.permission.INTERNET" /> 
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> 
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 
    <uses-permission android:name="android.permission.CAMERA" /> 
    <uses-permission android:name="android.permission.CALL_PHONE" /> 

    <uses-feature android:name="android.hardware.sensor.accelerometer" /> 
    <uses-feature android:name="android.hardware.sensor.compass" /> 

    <application 
     android:name=".start.App" 
     android:allowBackup="true" 
     android:icon="@drawable/logo" 
     android:label="@string/app_name" 
     android:largeHeap="true" 
     android:supportsRtl="true" 
     android:theme="@style/AppTheme"> 
     <activity android:name=".start.MainActivity"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
     <activity 
      android:name=".MapNavActivity" 
      android:label="@string/title_activity_map_nav" 
      android:theme="@style/AppTheme.NoActionBarMain" /> 
     <activity 
      android:name=".menu_activities.LakeDetailActivity" 
      android:theme="@style/AppTheme.NoActionBarMain" /> 
     <activity 
      android:name=".menu_activities.FishActivity" 
      android:theme="@style/AppTheme.NoActionBarMain" /> 
     <activity 
      android:name=".menu_activities.BitesActivity" 
      android:theme="@style/AppTheme.NoActionBarMain" /> 
     <activity 
      android:name=".menu_activities.FishingMethodsActivity" 
      android:theme="@style/AppTheme.NoActionBarMain" /> 
     <activity 
      android:name=".fragments.MyFishingPlanDetailList" 
      android:theme="@style/AppTheme.NoActionBarMain" /> 
     <activity 
      android:name=".menu_activities.DetailPlaceActivity" 
      android:theme="@style/AppTheme.NoActionBarMain" /> 
     <activity android:name=".augumented_reality.AugumentedActivity" /> 
     <activity android:name=".start.MainMenu" 
      android:theme="@style/AppTheme.NoActionBarMain" /> 
    </application> 

</manifest> 

ho anche aggiungere piena eccezione

Process: rojus.zvyjybos.com.zvejybosrojus2, PID: 26070 
java.lang.RuntimeException: Unable to start activity ComponentInfo{rojus.zvyjybos.com.zvejybosrojus2/rojus.zvyjybos.com.zvejybosrojus2.MapNavActivity}: android.view.InflateException: Binary XML file line #12: Error inflating class android.support.design.widget.FloatingActionButton 
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2379) 
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2441) 
    at android.app.ActivityThread.access$800(ActivityThread.java:162) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1349) 
    at android.os.Handler.dispatchMessage(Handler.java:102) 
    at android.os.Looper.loop(Looper.java:135) 
    at android.app.ActivityThread.main(ActivityThread.java:5431) 
    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:914) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:707) 
Caused by: android.view.InflateException: Binary XML file line #12: Error inflating class android.support.design.widget.FloatingActionButton 
    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.parseInclude(LayoutInflater.java:916) 
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:802) 
    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 rojus.zvyjybos.com.zvejybosrojus2.map.MapFragment.customMapView(MapFragment.java:416) 
    at rojus.zvyjybos.com.zvejybosrojus2.map.MapFragment.onViewCreated(MapFragment.java:322) 
    at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1086) 
    at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1252) 
    at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:742) 
    at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1617) 
    at android.support.v4.app.FragmentController.execPendingActions(FragmentController.java:339) 
    at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:601) 
    at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1236) 
    at android.app.Activity.performStart(Activity.java:6068) 
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2342) 
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2441)  
    at android.app.ActivityThread.access$800(ActivityThread.java:162)  
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1349)  
    at android.os.Handler.dispatchMessage(Handler.java:102)  
    at android.os.Looper.loop(Looper.java:135)  
    at android.app.ActivityThread.main(ActivityThread.java:5431)  
    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:914)  
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:707)  
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.parseInclude(LayoutInflater.java:916)  
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:802)  
    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 rojus.zvyjybos.com.zvejybosrojus2.map.MapFragment.customMapView(MapFragment.java:416)  
    at rojus.zvyjybos.com.zvejybosrojus2.map.MapFragment.onViewCreated(MapFragment.java:322)  
    at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1086)  
    at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1252)  
    at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:742)  
    at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1617)  
    at android.support.v4.app.FragmentController.execPendingActions(FragmentController.java:339)  
    at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:601)  
    at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1236)  
    at android.app.Activity.performStart(Activity.java:6068)  
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2342)  
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2441)  
    at android.app.ActivityThread.access$800(ActivityThread.java:162)  
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1349)  
    at android.os.Handler.dispatchMessage(Handler.java:102)  
    at android.os.Looper.loop(Looper.java:135)  
    at android.app.ActivityThread.main(ActivityThread.java:5431)  
    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:914)  
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:707)  
Caused by: java.lang.IllegalArgumentException: You need to use a Theme.AppCompat theme (or descendant) with the design library. 
    at android.support.design.widget.ThemeUtils.checkAppCompatTheme(ThemeUtils.java:34) 
    at android.support.design.widget.FloatingActionButton.<init>(FloatingActionButton.java:116) 
    at android.support.design.widget.FloatingActionButton.<init>(FloatingActionButton.java:110) 
    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.parseInclude(LayoutInflater.java:916)  
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:802)  
    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 rojus.zvyjybos.com.zvejybosrojus2.map.MapFragment.customMapView(MapFragment.java:416)  
    at rojus.zvyjybos.com.zvejybosrojus2.map.MapFragment.onViewCreated(MapFragment.java:322)  
    at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1086)  
    at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1252)  
    at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:742)  
    at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1617)  
    at android.support.v4.app.FragmentController.execPendingActions(FragmentController.java:339)  
    at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:601)  
    at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1236)  
    at android.app.Activity.performStart(Activity.java:6068)  
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2342)  
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2441)  
    at android.app.ActivityThread.access$800(ActivityThread.java:162)  
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1349)  
    at android.os.Handler.dispatchMessage(Handler.java:102)  
    at android.os.Looper.loop(Looper.java:135)  
    at android.app.ActivityThread.main(ActivityThread.java:5431)  
    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:914)  
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:707)  
+0

Si prega di inviare il file mainfiest. –

+0

Aggiungi il tuo androidmanifest – basic

+0

Hai bisogno AppCompat! aggiungilo alla build gradle com.android.support:support-v4:24.0.0 – Amir

risposta

4

Ho appena provato il codice in un progetto fresco e si sta lavorando bene sulla mia macchina. Assicurati che compile 'com.android.support:appcompat-v7:23.4.0' sia nel tuo file build.gradle, quindi esegui una ricostruzione e verifica se questo è utile. Controlla anche il tuo gestore SDK per vedere se hai qualche vecchio aggiornamento che non hai ancora installato.

0

Ok vai in modo semplice.

aggiungi prima Dipendenza al tuo build.gradle.

dependencies { 
compile fileTree(dir: 'libs', include: ['*.jar']) 
testCompile 'junit:junit:4.12' 
compile 'com.android.support:appcompat-v7:23.1.1' 
compile 'com.android.support:design:23.1.1' 

}

quindi aprire il file XML e aggiungere Floating pulsante di azione.

<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" 
    android:src="@android:drawable/ic_dialog_email" /> 

quindi aprire il file .java e inizializzare il pulsante galleggiante

FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab); 
    fab.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      // Click action 
      // write you code here. 
     } 
    }); 

quindi pulire il vostro progetto ed eseguirlo.

Spero che questa soluzione ti aiuti.

Problemi correlati