Зависимая функция была определена, но не идентификатор пакета не был установлен. Возможно, вам не хватает зависимости функции в базовой функции
Я слежу за одним из Google Codelabs за создание мгновенного приложения.
И я пытался создать topeka-ui
(Функциональный модуль пользовательского интерфейса для мгновенных приложений).
Когда я пытаюсь запустить один из модулей приложения, он говорит:
Зависимая функция была определена, но не идентификатор пакета не был установлен. Возможно, вам не хватает зависимости функции в базовой функции.
9 ответов
Я только что пробежал кодовую метку на AS 3.0 beta 2 без проблем (* примечание). После какого момента в кодовой метке появилась ваша проблема?
Возможно, вы пропустили шаг. Дважды проверьте, что build.gradle вашего базового модуля имеет:
dependencies {
...
application project(":topekaapk")
feature project(":topekaui")
}
Покидать feature project(":topekaui")
может вызвать эту ошибку:
Ошибка:com.android.builder.internal.aapt.AaptException: была определена зависимая функция, но не был установлен идентификатор пакета. Возможно, вам не хватает зависимости функции в базовой функции.
Примечание. Поскольку привязка данных была отключена для неосновных модулей ( https://issuetracker.google.com/63814741), для выполнения этой функции в многофункциональном шаге 7 требуются некоторые дополнительные действия (т. Е. Избавление от них). DataBindingUtil).
У меня была проблема в том, что у меня было приложение для Android и библиотека для Android, но я по ошибке использовал не тот плагин.
Для приложения:
plugins {
id "com.android.application"
id "kotlin-android"
}
Для библиотеки:
plugins {
id "com.android.library"
id "kotlin-android"
}
Поскольку это единственный вопрос, связанный с переполнением стека, для "Определена зависимая функция, но не задан идентификатор пакета. Возможно, вам не хватает зависимости функции в базовой функции". Я отвечу, что моя проблема была здесь, а не создам новый вопрос. У меня был модуль, который давал мне эту ошибку и не мог выяснить проблему. В файле build.gradle модуля у меня было:
apply plugin: 'com.android.feature'
Это должно было быть:
apply plugin: 'com.android.libary'
Возможно, вы добавили зависимый модуль как приложение, его следует добавить как библиотеку. Проверьте файл build.gradle модуля и
Заменять
plugins {
id 'com.android.application'
к
plugins {
id 'com.android.library'
также удалите applicationId из build.gradle внутреннего модуля, если он добавлен в блок defaultConfig
Я сделал это в build.gradle(...mylibrary), исправил, и все заработало:
plugins {
- id 'com.android.application'
+ id 'com.android.library'}
defaultConfig {
- applicationId "com.example.mylibrary"
minSdk 21
targetSdk 32}
У меня была эта проблема в моем модуле динамических функций, когда я забыл добавить ссылку на нее в базовый модуль android.dynamicFeatures = [":module_name"]
массив
Со следующим 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, например, старая и текущая версии той же библиотеки.
База из базовой структуры проекта мгновенного приложения,
При создании вашего мгновенного приложения этот модуль использует все функции и создает Instant App 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 для получения дополнительной информации.
Это решение будет работать 100%
Шаг 1) Откройте gradle.properties
Шаг 2) Добавитьandroid.enableJetifier=true
в файл
Сделанный!