2015-06-07 38 views
14

Điều tôi đang cố gắng làm là sử dụng thư viện thiết kế hỗ trợ Android mới được đề cập tại đây: http://android-developers.blogspot.com/2015/05/android-design-support-library.html.Lỗi khi tăng cấp thiết kế hỗ trợ Android lớp

Tôi đã cố gắng sử dụng các nút hành động nổi như sau trong cách bố trí xml của tôi (đây là nơi mà các lỗi dưới đây xuất phát từ):

<android.support.design.widget.FloatingActionButton 
    android:id="@+id/fab" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignTop="@+id/adview" 
    android:layout_marginTop="500dp" /> 

Khi ứng dụng của tôi được đưa ra đây là lỗi:

06-06 20:56:43.186 6405-6405/com.nick.app E/AndroidRuntime﹕ FATAL EXCEPTION: main 
Process: com.nick.app, PID: 6405 
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.nick.app/com.nick.app.MainActivity}: android.view.InflateException: Binary XML file line #7: Error inflating class android.support.design.widget.FloatingActionButton 
     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2306) 
     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2366) 
     at android.app.ActivityThread.access$800(ActivityThread.java:149) 
     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1284) 
     at android.os.Handler.dispatchMessage(Handler.java:102) 
     at android.os.Looper.loop(Looper.java:135) 
     at android.app.ActivityThread.main(ActivityThread.java:5290) 
     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:908) 
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:703) 
Caused by: android.view.InflateException: Binary XML file line #7: 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.inflate(LayoutInflater.java:504) 
     at android.view.LayoutInflater.inflate(LayoutInflater.java:414) 
     at android.view.LayoutInflater.inflate(LayoutInflater.java:365) 
     at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:401) 
     at android.app.Activity.setContentView(Activity.java:2197) 
     at com.nick.app.MainActivity.onCreate(MainActivity.java:94) 
     at android.app.Activity.performCreate(Activity.java:6020) 
     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105) 
     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2259) 
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2366) 
            at android.app.ActivityThread.access$800(ActivityThread.java:149) 
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1284) 
            at android.os.Handler.dispatchMessage(Handler.java:102) 
            at android.os.Looper.loop(Looper.java:135) 
            at android.app.ActivityThread.main(ActivityThread.java:5290) 
            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:908) 
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:703) 

trong tập tin build.gradle của tôi cho các module ứng dụng tôi có compile 'com.android.support:design:22.2.0' như required.Also, các bộ phận khác có liên quan từ build.gradle file:

compileSdkVersion 21 
buildToolsVersion "21.1.1" 
defaultConfig { 
    ... 
    minSdkVersion 16 
    targetSdkVersion 21 
    ..... 

Tôi cũng nên lưu ý rằng khi tôi đi đến cấu trúc dự án-> phụ thuộc và tôi cố gắng thêm phụ thuộc thư viện, tôi không thể tìm thấy "com.android.support:design:22.2.0" khi tìm kiếm (tôi không chắc chắn nếu điều này là bắt buộc ngoài việc thêm phụ thuộc vào tệp build.gradle).

Cuối cùng, trong trình quản lý SDK của tôi, tôi đã xác nhận "Kho lưu trữ hỗ trợ Android" và "Thư viện hỗ trợ Android" được cập nhật ở phiên bản 15 và 22.2, tương ứng.

Có đề xuất nào về những gì khác tôi có thể thử không?

Tôi đã tìm thấy câu trả lời này: https://stackoverflow.com/a/30557995/1489990 và đã thử giải pháp tuy nhiên nó không giải quyết được sự cố của tôi.

+0

Bạn đã thử cách này: http://stackoverflow.com/q/30576450/3922207 –

Trả lời

11

Nếu bạn đang sử dụng bất kỳ thành phần Thư viện thiết kế nào, bạn nên đảm bảo hoạt động của mình mở rộng AppCompatActivity và sử dụng chủ đề Theme.AppCompat thích hợp. Lưu ý rằng FloatingActionButton dựa trên số colorAccent đặt trên chủ đề của bạn - đảm bảo chủ đề của bạn đã được xác định.

+0

Chủ đề của tôi đã xác định 'colorAccent', chủ đề này sử dụng chủ đề" Theme.AppCompat' "thích hợp (bất kể điều đó có nghĩa gì; thử 'Theme.AppCompat' và' Theme.AppCompat.Light'), và hoạt động của tôi mở rộng 'AppCompatActivity'. tất cả những gì tôi nhận được là: "Bạn cần sử dụng chủ đề Theme.AppCompat (hoặc hậu duệ) với hoạt động này". [buồn mặt] –

6

Lỗi này có thể được gây ra do các lý do như được đề cập bên dưới.

  1. Sự cố này có thể xảy ra khi phiên bản thư viện ứng dụng và thư viện hỗ trợ thiết kế của bạn không khớp.

Ví dụ về phù hợp với điều kiện

compile 'com.android.support:appcompat-v7:24.2.0' // appcompat library 

    compile 'com.android.support:design:24.2.0' //design support library 
  1. file theme của bạn trong phong cách không nên có

    <item name="colorPrimary">#4A0958</item> 
    <item name="colorPrimaryDark">#4A0958</item> 
    

    Nó nên nhìn hơi như thế này.

    <style name="AppTheme.Base" parent="Theme.AppCompat.Light.NoActionBar"> 
    
    <item name="colorPrimary">#4A0958</item> 
    <item name="colorPrimaryDark">#4A0958</item> 
    <item name="colorAccent">#4A0958</item> 
    
    </style> 
    
+0

Điều này làm việc cho tôi. Cảm ơn. – marienke

4

Nếu mọi thứ khác không làm việc, nâng cấp các phiên bản của sự phụ thuộc và phiên bản. Trong tệp build.gradle của bạn:

compileSdkVersion 24 

compile 'com.android.support:appcompat-v7:24.2.0' 
compile 'com.android.support:design:24.2.0' 
compile 'com.android.support:recyclerview-v7:24.2.0' 
compile 'com.android.support:cardview-v7:24.2.0' 
+0

điều này làm việc cho tôi. cảm ơn –

0

Tôi đã gặp lỗi tương tự. Sau khi tìm kiếm thêm tôi đã có giải pháp. Chỉ cần Thay đổi bản dựng.gradle (Học phần: ứng dụng)

apply plugin: 'com.android.application' 

android { 
    compileSdkVersion 24 // previous 23 

    buildToolsVersion "24.0.2" 

    defaultConfig { 
     applicationId "com.ventrux.thevideoapp" 
     minSdkVersion 15 
     targetSdkVersion 24 // previous 23 
     versionCode 1 
     versionName "1.0" 
     multiDexEnabled true 

    } 
    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
} 

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    testCompile 'junit:junit:4.12' 
    compile 'org.jbundle.util.osgi.wrapped:org.jbundle.util.osgi.wrapped.org.apache.http.client:4.1.2' 
    compile 'com.android.support:appcompat-v7:24.2.1'  // previous 23.2.1 
    compile 'com.android.support:design:24.2.1'   // previous 23.2.1 

    compile files('libs/YouTubeAndroidPlayerApi.jar') 
} 

Xml cho FloatingActionButton

<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:src="@drawable/plus_iconaddvideo" 
      android:layout_marginRight="30dp" 
      android:layout_marginBottom="30dp" 
      android:layout_alignParentBottom="true" 
      android:layout_alignParentRight="true" 
      android:layout_alignParentEnd="true" 
      android:layout_marginEnd="30dp" 
      /> 
0

tôi đã cùng một vấn đề. Tôi giải quyết nó xây dựng làm sạch và xây dựng lại dự án. Khi tôi chạy nó một lần nữa, nó không có ngoại lệ như vậy ném.

Các vấn đề liên quan