Odpowiedzi:
Na podstawie tych informacji :
ApplicationId w projektach bibliotecznych
Nie można użyć elementu applicationId, aby dostosować pakiet projektu biblioteki. Nazwa pakietu musi zostać ustalona w projektach bibliotek (i określona jako nazwa_pakietu w manifeście). Wtyczka Gradle nie wymusiła wcześniej tego ograniczenia.
Usunięcie zmiennej applicationId z build.gradle
pliku biblioteki powinno rozwiązać problem.
Dzięki Joelowi za poprawną odpowiedź: muszę usunąć tylko 1 linię z .gradle
pliku te :
defaultConfig {
applicationId "com.super.app" <---- remove this line
minSdkVersion 15
targetSdkVersion 19
versionCode 1
versionName "1.0"
}
staje się
defaultConfig {
minSdkVersion 15
targetSdkVersion 19
versionCode 1
versionName "1.0"
}
i mój plik AndroidManifest.xml
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.super.app">
...
To właściwe rozwiązanie, jeśli nie musisz zmieniać nazwy pakietu aplikacji. Aby zmienić jego nazwę, musisz użyć „smaków”:
android {
...
productFlavors {
flavor1 {
applicationId 'com.super.superapp'
}
}
Niech to komuś pomoże:
Kiedy zaimportowałem projekt Eclipse do Android Studio, otrzymałem błąd:
„Błąd: identyfikator aplikacji i aplikacji testowej nie mogą być takie same”
Dziwne, ale zajrzałem do pliku build.gradle i znalazłem dwa symbole zastępcze, jeden dla aplikacji, a drugi dla testapplication.
Usunąłem testApplicationId z tego, jak sugerowano w tym poście, i to pomogło mi rozwiązać problem.
Uwaga: to wyjaśnienie nie jest związane z błędami opublikowanymi w tym pytaniu, ale może pomóc komuś, kto napotyka podobny błąd.
Nie możesz zdefiniować applicationId dla swojej biblioteki. Jeśli jednak chcesz użyć identyfikatora w pliku kompilacji, który da ci nazwę pakietu biblioteki, możesz zdefiniować zmienną dla modułu, a następnie użyć wartości zgodnie z wymaganiami.
np .: biblioteka build.gradle
apply plugin: 'com.android.library'
def libraryGroupId = 'com.google.example'
def libraryArtifactId = project.getName()
def libraryVersion = '1.1'
Możesz również użyć poniższej wartości w razie potrzeby w samym pliku kompilacji w lib.
android {
compileSdkVersion 28
defaultConfig {
minSdkVersion 21
targetSdkVersion 28
versionCode 1
versionName "$libraryVersion"
resValue "string", "Library", libraryGroupId"
}
}