Se definió una función dependiente, pero no se estableció ningún ID de paquete. Probablemente te falte una dependencia de funciones en la función base

5 minutos de lectura

avatar de usuario de erluxman
erluxman

estoy siguiendo uno de los Laboratorios de código de Google para hacer una aplicación instantánea.

Y yo estaba tratando de crear topeka-ui (Un módulo de funciones de interfaz de usuario para aplicaciones instantáneas).

Cuando intento ejecutar uno de los módulos de aplicaciones instantáneas, dice:

Se definió una función dependiente, pero no se estableció ningún ID de paquete. Probablemente le falte una dependencia de función en la función base.

  • ¿Configuró baseFeature=true en topekaui build.gradle porque el enlace de datos no se admite actualmente en los módulos de características que no son base? Lo hice y también resolví tu problema. Y tampoco puedo encontrar una buena solución para eso …

    – Mkr

    28 de agosto de 2017 a las 9:26

  • yo tampoco he encontrado la solucion todavia

    – Erluxman

    28 de agosto de 2017 a las 9:30

  • lo más molesto es que ni siquiera puedo encontrar dónde se definió la característica dependiente. sin registro, sin información de depuración. nada. Cada vez es peor desarrollar en Android Studio. Tan jodidamente frustrante.

    – Gillis Haasnoot

    15 de noviembre de 2017 a las 1:07

Tuve un problema porque tenía una aplicación de Android y una biblioteca de Android, pero usé el complemento incorrecto por error.

Para una aplicación:

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

Para una biblioteca:

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

  • ¡Muchas gracias! ¡Por alguna razón, Android Studio creó automáticamente la identificación del complemento “com.android.application” en la biblioteca gradle también!

    – Idán

    14 de noviembre de 2020 a las 10:38

avatar de usuario de tim.paetz
tim.paetz

Dado que esta es la única pregunta de stackoverflow para “Se definió una función dependiente, pero no se estableció una ID de paquete. Probablemente le falte una dependencia de función en la función base”. Responderé cuál era mi problema aquí en lugar de crear una nueva pregunta. Tenía un módulo que me estaba dando este error y no podía resolver el problema. En el archivo build.gradle del módulo dependiente, tenía:

apply plugin: 'com.android.feature'

Debería haber sido:

apply plugin: 'com.android.library'

  • Gracias buen amigo! ¡Salvaste mi día! Nunca sabré cómo te diste cuenta de que esa era la causa del error. La próxima vez necesitaré usar la opción Biblioteca de Android cuando cree un nuevo módulo. Sin embargo, esta ‘biblioteca’ no contiene ningún código específico de Android.

    – Brian Reinhold

    9 de julio de 2020 a las 11:07

  • aplique el complemento: ‘com.android.library’ corrija el error de ortografía @tim.paetz

    –Harish Gyanani

    31 de julio de 2020 a las 13:55

  • Respuesta perfecta.

    – Bhavesh Moradiya

    3 de noviembre de 2020 a las 14:20

Avatar de usuario de TWL
TWL

Acabo de ejecutar el codelab en AS 3.0 beta 2 sin problemas (* nota). ¿Después de qué punto en el codelab apareció su problema?

Es posible que te hayas perdido un paso. Vuelva a verificar que el build.gradle de su módulo base tenga:

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

Dejando fuera feature project(":topekaui") puede causar este error:

Error: com.android.builder.internal.aapt.AaptException: se definió una función dependiente, pero no se configuró ningún ID de paquete. Probablemente le falte una dependencia de función en la función base.

Nota: debido a que el enlace de datos se ha deshabilitado para los módulos que no son de base (https://issuetracker.google.com/63814741), se requieren algunos pasos adicionales en el paso 7 de funciones múltiples para sortearlo (es decir, deshacerse de DataBindingUtil).

  • Publicar mi mensaje exacto para ayudar con los motores de búsqueda: Causado por: com.android.builder.internal.aapt.AaptException: Funciones dependientes configuradas pero no se configuró ningún ID de paquete.

    – firma del método

    15 oct 2018 a las 15:13

Lo hice en build.gradle(…mylibrary), lo arreglé y funcionó:

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

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

Tuve este problema en mi módulo de funciones dinámicas cuando olvidé agregarle una referencia en el módulo base android.dynamicFeatures = [":module_name"] formación

Avatar de usuario de Teyam
Teyam

A base de estructura básica del proyecto de aplicación instantánea,

Cuando crea su aplicación instantánea, este módulo toma todas las funciones y crea APK de aplicaciones instantáneas. No contiene ningún código o recurso; contiene solo un build.gradle archivo y tiene el com.android.instantapp complemento aplicado a él. Aquí hay un ejemplo:

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

Además, tenga en cuenta que

El archivo de configuración de compilación del módulo de características base debe aplicar el com.android.feature complemento gradle El build.gradle El archivo no contiene ninguna modificación específica de la aplicación instantánea.

Con esto y en línea con su error encontrado, es posible que desee verificar su archivo de configuración de compilación del módulo de función base. Por último, asegúrese de que usted también sincroniza tu proyecto con archivos gradle.

Ver Documentación de aplicaciones instantáneas de Android para más información.

Con el siguiente gradle pugin

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

En mi caso, después de agregar a la aplicación build.gradle

android{
dataBinding {
        enabled = true
    }
}

Recibí el error publicado, luego hice lo siguiente

Android studio -> invalidate cache and restart

¡El problema se solucionó!

¿Aún no está arreglado?

Probablemente haya una dependencia en conflicto que resida en build.gradle, como la versión anterior y actual de la misma biblioteca

¿Ha sido útil esta solución?