2017-08-26 1 views
3

Je suis l'un des Google Codelabs pour faire une application instantanée.Une fonction dépendante a été définie mais aucun ID de package n'a été défini. Vous êtes probablement manquant une dépendance de fonctionnalité dans la fonctionnalité de base

Et j'essayais de créer topeka-ui (Un module de fonction d'interface utilisateur pour les applications instantanées).

Lorsque je tente d'exécuter l'un du module de l'application instant, il dit:

A dependent feature was defined but no package ID was set. You are probably missing a feature dependency in the base feature.

+0

Avez-vous réglé baseFeature = true dans topekaui build.gradle parce que la liaison de données ne sont pas actuellement pris en charge dans non -base modules de fonctionnalité? Je l'ai fait et j'ai aussi rencontré votre problème. Et aussi ne peux pas trouver une bonne solution pour cela ... – Mkr

+0

Je n'ai pas encore trouvé la solution – erluxman

+0

la chose la plus ennuyante est que je ne peux même pas trouver où la fonctionnalité dépendante a été définie. aucun journal, aucune information de débogage. rien. Son devient de pire en pire à développer dans Android Studio. Tellement frustrant. –

Répondre

3

Je viens de parcourir le codelab sur AS 3.0 beta 2 sans problèmes (* note). Après quel point dans le codelab votre problème est-il apparu?

Vous avez peut-être manqué une étape. Vérifiez bien que votre build.gradle du module de base a:

dependencies { 
    ... 
    application project(":topekaapk") 
    feature project(":topekaui") 
} 

Laissant feature project(":topekaui") peut provoquer cette erreur:

Error:com.android.builder.internal.aapt.AaptException: A dependent >feature was defined but no package ID was set. You are probably missing a >feature dependency in the base feature.

Note: en raison de liaison de données a été désactivée pour les modules non-base (https://issuetracker.google.com/63814741) , il nécessite quelques étapes supplémentaires dans l'étape multi-fonctionnalité 7 pour contourner le problème (c'est-à-dire se débarrasser de DataBindingUtil).

0

base de basic instant app project structure,

When you build your instant app, this module takes all of the features and creates Instant App APKs. It does not hold any code or resources; it contains only a build.gradle file and has the com.android.instantapp plugin applied to it. Here's an example:

apply plugin: 'com.android.instantapp' 
... 
dependencies { 
    implementation project(':base') 
    // if there additional features, they go here 
    implementation project(':feature1') 
} 

En outre, notez que

The base feature module's build configuration file needs to apply the com.android.feature gradle plugin. The build.gradle file does not contain any instant app specific modifications.

Avec cela et en ligne avec votre erreur rencontrée, vous voudrez peut-être vérifier votre base feature module's build configuration file. Enfin, assurez-vous que vous aussi sync your project with gradle files. Pour plus d'informations, voir Android Instant Apps documentation pour plus d'informations.

0

Puisqu'il s'agit de la seule question de stackoverflow pour "Une fonctionnalité dépendante a été définie mais aucun ID de package n'a été défini. Vous ne disposez probablement pas d'une dépendance de fonctionnalité dans la fonction de base". Je vais répondre à ma question plutôt que de créer une nouvelle question. J'avais un module qui me donnait cette erreur et je n'arrivais pas à comprendre le problème. Dans le fichier build.gradle du module, j'avais:

apply plugin: 'com.android.feature' 

Il aurait dû être:

apply plugin: 'com.android.libary'