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

空扰寡人 提交于 2020-12-08 05:46:22

问题


I am following one of the Google Codelabs for making an Instant App.

And I was trying to create topeka-ui (A UI feature module for Instant Apps).

When I try to run one of the instant app module it says :

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


回答1:


I just ran through the codelab on AS 3.0 beta 2 without issues (*note). After what point in the codelab did your issue appear?

You might’ve missed a step. Double check that your base module’s build.gradle has:

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

Leaving out feature project(":topekaui") can cause this error:

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: because data-binding has been disabled for non-base modules (https://issuetracker.google.com/63814741), there requires some additional steps in the multi-feature step-7 to get around it (ie. getting rid of the DataBindingUtil).




回答2:


Since this is the only stackoverflow question for "A dependent feature was defined but no package ID was set. You are probably missing a feature dependency in the base feature." I will answer what my issue was here rather than create a new question. I had a module that was giving me this error and couldn't figure out the problem. In the dependent module's build.gradle file, I had:

apply plugin: 'com.android.feature'

It should have been:

apply plugin: 'com.android.library'



回答3:


I had an issue in that I had an Android app and an Android Library, but I had used the wrong plugin by mistake.

For an app:

plugins {
    id "com.android.application"
    id "kotlin-android"
}

For a library:

plugins {
    id "com.android.library"
    id "kotlin-android"
}



回答4:


I had this issue in my Dynamic Feature Module when I forgot to add a reference to it in the base module's android.dynamicFeatures = [":module_name"] array




回答5:


Base from 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')
}

Furthermore, note that

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.

With this and in line with your encountered error, you may want to check your base feature module's build configuration file. Lastly, make sure that you also sync your project with gradle files.

See Android Instant Apps documentation for more information.




回答6:


With the following gradle pugin

classpath 'com.android.tools.build:gradle:3.5.1'

In my case, after adding to app's build.gradle

android{
dataBinding {
        enabled = true
    }
}

I got the posted error, then doing the following

Android studio -> invalidate cache and restart

Issue got fixed!

Not Fixed Yet?

Probably there is a conflicting dependency residing in build.gradle, like the older and current version of the same library



来源:https://stackoverflow.com/questions/45891659/a-dependent-feature-was-defined-but-no-package-id-was-set-you-are-probably-miss

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!