3

Lors de l'exécution de mon application instantanée, je reçois la inflateException suivante:instantanée APP InflateException

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.xfzj.instantappdemo/com.xfzj.instantappdemo.feature.MainActivity}: android.view.InflateException: Binary XML file line #10: Binary XML file line #10: Error inflating class android.support.design.widget.AppBarLayout 
                      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 #10: Binary XML file line #10: Error inflating class android.support.design.widget.AppBarLayout 
                      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:292) 
                      at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:140) 
                      at com.xfzj.instantappdemo.feature.MainActivity.onCreate(MainActivity.java:17) 
                      at android.app.Activity.performCreate(Activity.java:6237) 
                      at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107) 
</pre> 

Voici mon layout.xml:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout 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:orientation="vertical" 
    tools:context="com.xfzj.instantappdemo2.feature.MainActivity"> 

<android.support.design.widget.AppBarLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:theme="@style/AppTheme.AppBarOverlay"> 

    <android.support.v7.widget.Toolbar 
     android:id="@+id/toolbar" 
     android:layout_width="match_parent" 
     android:layout_height="?attr/actionBarSize" 
     android:background="?attr/colorPrimary" 
     app:popupTheme="@style/AppTheme.PopupOverlay" /> 

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

<include layout="@layout/content_main" /> 

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

Voici mon fichier module build.gradle de fonction:

dependencies { 
    implementation fileTree(dir: 'libs', include: ['*.jar']) 
    androidTestImplementation('com.android.support.test.espresso:espresso-core:2.2.2', { 
     exclude group: 'com.android.support', module: 'support-annotations' 
    }) 
    implementation project(':base') 
    implementation 'com.android.support:appcompat-v7:25.4.0' 
    testImplementation 'junit:junit:4.12' 
    implementation 'com.android.support:design:25.4.0' 
} 

Si j'exécute l'application installée, elle réussit.

Est-ce que com.android.support:design:25.4.0 n'est pas compatible avec l'application instantanée?

Répondre

0

puisque les deux partagent la bibliothèque de conception application instantanée et installée, la dépendance

implementation 'com.android.support:appcompat-v7:25.4.0 

devrait être dans le fichier fonction de base build.gradle, pas installed.

Si vous souhaitez l'inclure dans une fonction autre que de base, assurez-vous que les fichiers build.gradle instantanés et installés incluent cette fonction.

+0

C'est dans la fonction build.gradle, pas dans installé. – user6310522

+0

Est-ce que instantanée et installé a la dépendance de fonctionnalité dans 'build.gradle'? – mol

+0

Oui, ils ont tous les deux la dépendance de fonctionnalité. Je décompiler les codes de l'application instantanée, trouver android.support.v7 et la conception et ainsi de suite. – user6310522

1

com.android.support:design:25.4.0 est pris en charge par les applications instantanées. Le problème réside dans les dépendances en double sur les bibliothèques appcompat et prenant en charge les bibliothèques entre les modules d'entités. En règle générale, puisque ces bibliothèques sont des caractéristiques à travers communes, ils seront inclus dans le fichier (par exemple à partir d'Android Studio de la construction d'un défaut projet instantané App) du module de fonction de base build.gradle:

dependencies { 
    application project(':app') 
    feature project(':feature') 
    api 'com.android.support:appcompat-v7:25.4.0' 
    api 'com.android.support.constraint:constraint-layout:1.0.2' 
    api 'com.android.support:design:25.4.0' 
} 

Depuis d'autres modules de fonction ont une dépendance à la base module de fonctionnalité, ils ne doivent pas inclure ces bibliothèques elles-mêmes. Le juste besoin du module de fonction build.gradle comprennent:

dependencies { 
    ... 
    implementation project(':base') 
    ... 
} 

En d'autres termes, toutes les bibliothèques définies dans le module de fonction de base sont disponibles pour les autres caractéristiques et ils ne doivent pas être rajoutés en tant que dépendance.