Зависимая функция была определена, но не идентификатор пакета не был установлен. Возможно, вам не хватает зависимости функции в базовой функции

Я слежу за одним из 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в файл

Сделанный!

См. снимок экрана:

Другие вопросы по тегам