it-roy-ru.com

Ошибка надувания класса поддержки Android дизайн

То, что я пытаюсь сделать, это использовать новую библиотеку разработки поддержки Android, упомянутую здесь: http://Android-developers.blogspot.com/2015/05/Android-design-support-library.html .

Я попытался использовать кнопку плавающего действия, как показано ниже в моем макете XML (отсюда и следующая ошибка):

<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" />

Когда мое приложение запускается, это ошибка:

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)

в моем файле build.gradle для модуля приложения у меня есть compile 'com.Android.support:design:22.2.0' как требуется. Также, другие соответствующие части из файла build.gradle

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

Я также должен отметить, что когда я захожу в структуру проекта-> зависимости и пытаюсь добавить библиотечную зависимость, я не могу найти «com.Android.support:design:22.2.0» при поиске (я не уверен, требуется ли это в дополнение к добавлению зависимости в файл build.gradle).

Наконец, в моем менеджере SDK я подтвердил, что «Репозиторий поддержки Android» и «Библиотека поддержки Android» обновлены до версий 15 и 22.2 соответственно.

Есть какие-нибудь предложения для того, что еще я мог бы попробовать?

Я нашел этот ответ: https://stackoverflow.com/a/30557995/1489990 и попробовал решение, однако оно не решило мою проблему.

14
ez4nick

Если вы используете какой-либо из компонентов Библиотеки дизайна, вы должны убедиться, что ваша деятельность расширяет AppCompatActivity и использует соответствующую тему Theme.AppCompat. Обратите внимание, что FloatingActionButton опирается на colorAccent, установленный в вашей теме - убедитесь, что ваша тема имеет это определение.

12
ianhanniballake

Эта ошибка может быть вызвана причинами, указанными ниже.

  1. Эта проблема, скорее всего, возникнет, если версия вашей библиотеки appcompat и библиотеки поддержки проектирования не совпадают.

Пример условия соответствия

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

  compile 'com.Android.support:design:24.2.0' //design support library
  1. Ваш файл темы в стилях не должен иметь 

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

    Это должно выглядеть примерно так.

    <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>
    
6
Vishal Puri

Если все остальное не работает, обновите версию зависимости и версию. В вашем файле build.gradle:

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'
4
ssudaraka

Я была такая же проблема. Я решил это построить очистку и перестроить проект. Когда я запустил его снова, таких исключений не было.

0
ryanafrish7

У меня была такая же ошибка. После дополнительного поиска у меня есть решение. Просто измените build.gradle (Модуль: приложение)

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 ​​для 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
Dharmendra Mishra