34

我正在关注其中一个Google Codelabs来制作即时应用程序。

我正在尝试创建topeka-ui即时应用程序的 UI 功能模块)。

当我尝试运行其中一个即时应用程序模块时,它说:

定义了依赖功能,但未设置包 ID。您可能在基本功能中缺少功能依赖项。

4

6 回答 6

62

我有一个问题,我有一个 Android 应用程序和一个 Android 库,但我错误地使用了错误的插件。

对于应用程序:

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

对于图书馆:

plugins {
    id "com.android.library"
    id "kotlin-android"
}
于 2020-10-23T20:09:08.733 回答
25

因为这是“定义了依赖功能但未设置包 ID。您可能缺少基本功能中的功能依赖项”的唯一 stackoverflow 问题。我将在这里回答我的问题,而不是创建一个新问题。我有一个模块给了我这个错误并且无法找出问题所在。在依赖模块的 build.gradle 文件中,我有:

apply plugin: 'com.android.feature'

它应该是:

apply plugin: 'com.android.library'
于 2017-12-18T18:56:49.753 回答
11

我刚刚在 AS 3.0 beta 2 上运行了 codelab,没有任何问题(*注)。您的问题出现在代码实验室的哪一点之后?

你可能错过了一步。仔细检查您的基本模块的 build.gradle 是否具有:

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

遗漏feature project(":topekaui")可能会导致此错误:

错误:com.android.builder.internal.aapt.AaptException:定义了依赖功能但未设置包 ID。您可能在基本功能中缺少功能依赖项。

注意:由于非基础模块(https://issuetracker.google.com/63814741)的数据绑定已被禁用,因此在多功能步骤 7 中需要一些额外的步骤来解决它(即摆脱DataBindingUtil 的)。

于 2017-08-28T18:47:40.700 回答
4

当我忘记在基本模块的android.dynamicFeatures = [":module_name"]数组中添加对它的引用时,我在动态功能模块中遇到了这个问题

于 2019-01-02T15:42:05.637 回答
1

基于基本的即时应用项目结构

当您构建免安装应用时,此模块会采用所有功能并创建免安装应用 APK。它不包含任何代码或资源;它只包含一个build.gradle文件并com.android.instantapp应用了插件。这是一个例子:

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

此外,请注意

基本功能模块的构建配置文件需要应用com.android.featuregradle 插件。该build.gradle文件不包含任何即时应用程序特定的修改。

有了这个并根据您遇到的错误,您可能需要检查基本功能模块的构建配置文件。最后,请确保您还将项目与 gradle 文件同步

有关更多信息,请参阅Android Instant Apps 文档

于 2017-08-26T15:02:30.530 回答
1

使用以下 gradle pugin

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

就我而言,在添加到应用程序的 build.gradle 之后

android{
dataBinding {
        enabled = true
    }
}

我收到了发布的错误,然后执行以下操作

Android studio -> invalidate cache and restart

问题已解决!

还没修好?

build.gradle 中可能存在冲突的依赖项,例如同一库的旧版本和当前版本

于 2020-10-23T12:31:53.670 回答