1

I would like to show a SnackBar and a FloatingActionButton so I added android-support-design.jar to my project. But I got the following error:

 01-07 20:31:31.799: E/AndroidRuntime(929): FATAL EXCEPTION: main
01-07 20:31:31.799: E/AndroidRuntime(929): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.KM.example/com.KM.example.MainActivity}: android.view.InflateException: Binary XML file line #7: Error inflating class android.support.design.widget.FloatingActionButton
01-07 20:31:31.799: E/AndroidRuntime(929):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1647)
01-07 20:31:31.799: E/AndroidRuntime(929):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
01-07 20:31:31.799: E/AndroidRuntime(929):  at android.app.ActivityThread.access$1500(ActivityThread.java:117)
01-07 20:31:31.799: E/AndroidRuntime(929):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
01-07 20:31:31.799: E/AndroidRuntime(929):  at android.os.Handler.dispatchMessage(Handler.java:99)
01-07 20:31:31.799: E/AndroidRuntime(929):  at android.os.Looper.loop(Looper.java:123)
01-07 20:31:31.799: E/AndroidRuntime(929):  at android.app.ActivityThread.main(ActivityThread.java:3683)
01-07 20:31:31.799: E/AndroidRuntime(929):  at java.lang.reflect.Method.invokeNative(Native Method)
01-07 20:31:31.799: E/AndroidRuntime(929):  at java.lang.reflect.Method.invoke(Method.java:507)
01-07 20:31:31.799: E/AndroidRuntime(929):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
01-07 20:31:31.799: E/AndroidRuntime(929):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
01-07 20:31:31.799: E/AndroidRuntime(929):  at dalvik.system.NativeStart.main(Native Method)
01-07 20:31:31.799: E/AndroidRuntime(929): Caused by: android.view.InflateException: Binary XML file line #7: Error inflating class android.support.design.widget.FloatingActionButton
01-07 20:31:31.799: E/AndroidRuntime(929):  at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:581)
01-07 20:31:31.799: E/AndroidRuntime(929):  at android.view.LayoutInflater.rInflate(LayoutInflater.java:623)
01-07 20:31:31.799: E/AndroidRuntime(929):  at android.view.LayoutInflater.inflate(LayoutInflater.java:408)
01-07 20:31:31.799: E/AndroidRuntime(929):  at android.view.LayoutInflater.inflate(LayoutInflater.java:320)
01-07 20:31:31.799: E/AndroidRuntime(929):  at android.view.LayoutInflater.inflate(LayoutInflater.java:276)
01-07 20:31:31.799: E/AndroidRuntime(929):  at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:255)
01-07 20:31:31.799: E/AndroidRuntime(929):  at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:109)
01-07 20:31:31.799: E/AndroidRuntime(929):  at com.KM.example.MainActivity.onCreate(MainActivity.java:17)
01-07 20:31:31.799: E/AndroidRuntime(929):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
01-07 20:31:31.799: E/AndroidRuntime(929):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1611)
01-07 20:31:31.799: E/AndroidRuntime(929):  ... 11 more
01-07 20:31:31.799: E/AndroidRuntime(929): Caused by: java.lang.ClassNotFoundException: android.support.design.widget.FloatingActionButton in loader dalvik.system.PathClassLoader[/data/app/com.KM.example-2.apk]
01-07 20:31:31.799: E/AndroidRuntime(929):  at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:240)
01-07 20:31:31.799: E/AndroidRuntime(929):  at java.lang.ClassLoader.loadClass(ClassLoader.java:551)
01-07 20:31:31.799: E/AndroidRuntime(929):  at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
01-07 20:31:31.799: E/AndroidRuntime(929):  at android.view.LayoutInflater.createView(LayoutInflater.java:471)
01-07 20:31:31.799: E/AndroidRuntime(929):  at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:570)
01-07 20:31:31.799: E/AndroidRuntime(929):  ... 20 more

My Activity is:

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        findViewById(R.id.fab).setOnClickListener(new View.OnClickListener() {
              @Override
              public void onClick(View view) {
                Snackbar.make(view, "Snackbar", Snackbar.LENGTH_LONG).show();
              }
            });

    }
}

activity_main.xml:

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    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="end|bottom"/>

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

styles.xml:

<resources>
    <style name="AppBaseTheme" parent="Theme.AppCompat.Light">

    </style>

    <style name="AppTheme" parent="AppBaseTheme">

    </style>

</resources>

I found some similar problems but none of the solutions worked for me. Anyone can help me about this? Thank you very much.

1 Answers1

0
  1. Change the target of design library to 23
  2. Import support design library from \sdk\extras\android\support\design to eclipse workspace.
  3. Open project.properties of AppCompat and design Library and target it to 23
  4. Clean complete workspace
  5. Run

Hope it helps

Logic
  • 2,230
  • 2
  • 24
  • 41