Android Studio 1.0 y error "Los proyectos de la biblioteca no pueden establecer applicationId"


109

Después de actualizar Android Studio a 1.0, veo este error:

Error: los proyectos de biblioteca no pueden establecer applicationId. applicationId se establece en 'com.super.app' en la configuración predeterminada.

Actualicé el complemento de Gradle como se sugirió, pero no entendí cómo solucionarlo.

Respuestas:


208

Basado en esta información :

ApplicationId en proyectos de biblioteca

No puede usar applicationId para personalizar el paquete de un proyecto de biblioteca. El nombre del paquete debe fijarse en los proyectos de la biblioteca (y especificarse como packageName en el manifiesto). El complemento de Gradle no aplicó esta restricción anteriormente.

Eliminar la variable applicationId del build.gradlearchivo de la biblioteca debería resolver el problema.


Gracias, me llevas en la dirección correcta. Agregué una respuesta que explica el problema de "sabor" que tengo.
Seraphim's

1
@Joel: convertí el módulo en una biblioteca, pero no puedo encontrar el ApplicationId para eliminar. ApplicationId no está dr en el archivo build.gradle. ¿Puedes decirme dónde puedo encontrar en Android Studio 1.0.1?
Kumar

Si bien este enlace puede responder a la pregunta, es mejor incluir las partes esenciales de la respuesta aquí y proporcionar el enlace como referencia. Las respuestas de solo enlace pueden
dejar de

62

Gracias a Joel por su respuesta correcta: necesito eliminar solo 1 línea del .gradlearchivo:

defaultConfig {
        applicationId "com.super.app"   <---- remove this line
        minSdkVersion 15
        targetSdkVersion 19
        versionCode 1
        versionName "1.0"
    }

se convierte en

defaultConfig {
        minSdkVersion 15
        targetSdkVersion 19
        versionCode 1
        versionName "1.0"
    }

y mi AndroidManifest.xml

 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        package="com.super.app">
...

Esta es la solución adecuada si no necesita cambiar el nombre del paquete de su aplicación. Para cambiarle el nombre, debe usar "sabores":

android {
   ...
   productFlavors {
       flavor1 {
           applicationId 'com.super.superapp'
       }
   }

Lástima que no se puedan verificar dos respuestas, ya que incluyó un ejemplo que Joel debería tener.
Androidcoder

1
Si elimino la línea applicationID, ¿puedo publicar en Play Store? (Me refiero a actualizar) Porque no habrá ID de aplicación para Google Play.
pila de gurkan

1
@gurkanstack si elimina la línea en el archivo Gradle, el espacio de nombres definido en AndroidManifest.xml "paquete" se utilizará para la publicación.
Seraphim's

1

En caso de que ayude a alguien:

Cuando importé un proyecto de eclipse en Android Studio, recibí un error:

"Error: la aplicación y el ID de la aplicación de prueba no pueden ser iguales"

Sin embargo, es extraño, pero miré en build.gradle y encontré los dos marcadores de posición, uno para la aplicación y otro para la aplicación de prueba.

Eliminé el testApplicationId de eso como se sugiere en esta publicación y esto me ayudó a resolver el problema.

Nota: Esta explicación no está relacionada con los errores publicados en esta pregunta, pero podría ayudar a alguien que esté recibiendo un error similar.


0

No puede definir applicationId para su lib. Pero en caso de que desee usar un identificador en su archivo de compilación, que le dará el nombre del paquete de su biblioteca, puede definir una variable para el módulo y luego usar el valor según sea necesario.

por ejemplo: build.gradle de la biblioteca

apply plugin: 'com.android.library'

def libraryGroupId = 'com.google.example'
def libraryArtifactId = project.getName()
def libraryVersion = '1.1'

Además, puede usar el valor a continuación según sea necesario en su archivo de compilación en lib.

android {
compileSdkVersion 28

defaultConfig {
    minSdkVersion 21
    targetSdkVersion 28
    versionCode 1
    versionName "$libraryVersion"
    resValue "string", "Library", libraryGroupId"
 }
}
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.