我正在关注其中一个Google Codelabs制作即时应用程序。
我正在尝试创建topeka-ui
(即时应用的UI功能模块)。
当我尝试运行其中一个即时应用模块时,它说:
已定义相关功能但未设置包ID。 您可能缺少基本功能中的功能依赖项。
答案 0 :(得分:6)
我刚刚运行AS 3.0 beta 2上的codelab而没有问题(* note)。在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) )。
答案 1 :(得分:4)
我遇到一个问题,因为我有一个Android应用程序和一个Android库,但是我错误地使用了错误的插件。
对于应用程序:
plugins {
id "com.android.application"
id "kotlin-android"
}
对于图书馆:
plugins {
id "com.android.library"
id "kotlin-android"
}
答案 2 :(得分:1)
当我忘记在基本模块的android.dynamicFeatures = [":module_name"]
数组中添加对它的引用时,我在动态功能模块中遇到了这个问题
答案 3 :(得分:0)
基于basic instant app project structure,
当您构建即时应用时,此模块将获取所有功能并创建即时应用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.feature
gradle插件。build.gradle
文件不包含任何即时应用程序特定修改。
使用此功能并与您遇到的错误一致,您可能需要检查base feature module's build configuration file。最后,请确保您sync your project with gradle files。
有关详细信息,请参阅Android Instant Apps documentation。
答案 4 :(得分:0)
由于这是"唯一的stackoverflow问题;已定义依赖功能,但未设置包ID。您可能在基本功能中缺少功能依赖项。"我将回答我的问题,而不是创建一个新问题。我有一个模块给了我这个错误,但无法解决问题。在模块的build.gradle文件中,我有:
apply plugin: 'com.android.feature'
应该是:
apply plugin: 'com.android.libary'
答案 5 :(得分:0)
使用以下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中可能存在冲突的依赖关系, 就像同一个库的旧版本和当前版本一样