Respostas:
Com base nesta informação :
ApplicationId em projetos de biblioteca
Você não pode usar applicationId para personalizar o pacote de um projeto de biblioteca. O nome do pacote deve ser corrigido em projetos de biblioteca (e especificado como packageName no manifesto). O plug-in Gradle não aplicou essa restrição anteriormente.
Remover a variável applicationId do build.gradle
arquivo da biblioteca deve resolver o problema.
Agradeço a Joel pela resposta correta: Preciso remover apenas 1 linha do .gradle
arquivo:
defaultConfig {
applicationId "com.super.app" <---- remove this line
minSdkVersion 15
targetSdkVersion 19
versionCode 1
versionName "1.0"
}
torna-se
defaultConfig {
minSdkVersion 15
targetSdkVersion 19
versionCode 1
versionName "1.0"
}
e meu AndroidManifest.xml
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.super.app">
...
Esta é a solução certa se você não precisa renomear o nome do pacote do seu aplicativo. Para renomeá-lo, você precisa usar "sabores":
android {
...
productFlavors {
flavor1 {
applicationId 'com.super.superapp'
}
}
Apenas no caso de ajudar alguém:
Quando importei um projeto Eclipse para o Android Studio, recebi um erro:
"Erro: o aplicativo e o ID do aplicativo de teste não podem ser iguais"
Estranho, porém, mas olhei para o build.gradle e encontrei os dois espaços reservados, um para o aplicativo e outro para o aplicativo de teste.
Removi o testApplicationId como sugerido nesta postagem e isso me ajudou a resolver o problema.
Observação: esta explicação não está relacionada aos erros postados nesta pergunta, mas pode ajudar alguém que está recebendo um erro semelhante.
Você não pode definir applicationId para sua biblioteca. Mas, caso você queira usar um identificador em seu arquivo de construção, que fornecerá o nome do seu pacote de biblioteca, você pode definir uma variável para o módulo e então usar o valor conforme necessário.
por exemplo: build.gradle da biblioteca
apply plugin: 'com.android.library'
def libraryGroupId = 'com.google.example'
def libraryArtifactId = project.getName()
def libraryVersion = '1.1'
Além disso, você pode usar o valor abaixo conforme necessário em seu próprio arquivo de construção em lib.
android {
compileSdkVersion 28
defaultConfig {
minSdkVersion 21
targetSdkVersion 28
versionCode 1
versionName "$libraryVersion"
resValue "string", "Library", libraryGroupId"
}
}