android 已定义依赖功能,但未设置包ID,基本功能中可能缺少功能依赖项

trnvg8h3  于 2023-01-19  发布在  Android
关注(0)|答案(9)|浏览(196)

我下面的谷歌代码实验室之一,使即时应用程序。
我试图创建topeka-ui(* 即时应用程序的UI功能模块 *)。
当我尝试运行其中一个即时应用程序模块时,它会说:
已定义依赖功能,但未设置包ID。基本功能中可能缺少功能依赖项。

zqdjd7g9

zqdjd7g91#

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

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

对于库:

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

ktca8awb2#

由于这是“定义了依赖功能,但未设置软件包ID。您可能在基础功能中缺少功能依赖项”的唯一堆栈溢出问题。因此,我将回答我的问题,而不是创建一个新问题。我有一个模块向我提供了此错误,但无法找出问题所在。在依赖模块的build.gradle文件中,我有:

apply plugin: 'com.android.feature'

它应该是:

apply plugin: 'com.android.library'
vsikbqxv

vsikbqxv3#

我刚刚在AS3.0beta2上运行了代码实验室,没有问题(* 注)。在代码实验室的什么时候出现了你的问题?
您可能遗漏了一个步骤。请仔细检查基础模块的build. gradle是否具有:

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

忽略feature project(":topekaui")可能导致此错误:
发生错误:com. android. builder.内部. aapt.已定义依赖功能,但未设置包ID。基本功能中可能缺少功能依赖项。
注意:由于非基本模块(https://issuetracker.google.com/63814741)的数据绑定已被禁用,因此需要在多功能步骤7中执行一些额外的步骤来解决该问题(即,删除DataBindingUtil)。

gopyfrb3

gopyfrb34#

我在build.gradle(...mylibrary)中做了这个,修复后它工作了:

plugins {
- id 'com.android.application'
+ id 'com.android.library'}

defaultConfig {
    - applicationId "com.example.mylibrary"
    minSdk 21
    targetSdk 32}
hgc7kmma

hgc7kmma5#

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

zpf6vheq

zpf6vheq6#

从基本的即时应用项目结构出发,
当您构建即时应用时,此模块会获取所有功能并创建即时应用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文件不包含任何即时应用特定修改。
根据您遇到的错误,您可能需要检查基本功能模块的构建配置文件。最后,请确保您的项目也与Gradle文件同步。
有关详细信息,请参见Android Instant Apps documentation

ddarikpa

ddarikpa7#

具有以下等级pugin

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

在我的例子中,添加到应用的build.gradle之后

android{
dataBinding {
        enabled = true
    }
}

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

Android studio -> invalidate cache and restart

问题已解决!
还没有修复?
很可能build.gradle中存在相互冲突的依赖关系,例如同一库的旧版本和当前版本

nbnkbykc

nbnkbykc8#

    • 此解决方案将100%有效**

步骤1)打开 * gradle. properties *
步骤2)将android.enableJetifier=true添加到文件中
成交!
参见屏幕截图:

odopli94

odopli949#

您可能已将依赖模块添加为应用程序,但应将其添加为库。请检查模块的build.gradle文件和
替换

plugins {
    id 'com.android.application'

plugins {
    id 'com.android.library'

如果在defaultConfig块中添加了内部模块的build.gradle,还将其从build.gradle中删除

相关问题