답변:
이 정보를 바탕으로 :
도서관 프로젝트의 ApplicationId
applicationId를 사용하여 라이브러리 프로젝트의 패키지를 사용자 지정할 수 없습니다. 패키지 이름은 라이브러리 프로젝트에서 고정되어야하며 매니페스트에서 packageName으로 지정되어야합니다. Gradle 플러그인은 이전에이 제한을 적용하지 않았습니다.
라이브러리의 build.gradle파일 에서 applicationId 변수를 제거 하면 문제가 해결됩니다.
정답에 대한 Joel에게 감사드립니다. te .gradle파일 에서 단 한 줄만 제거하면 됩니다.
defaultConfig {
applicationId "com.super.app" <---- remove this line
minSdkVersion 15
targetSdkVersion 19
versionCode 1
versionName "1.0"
}
된다
defaultConfig {
minSdkVersion 15
targetSdkVersion 19
versionCode 1
versionName "1.0"
}
내 AndroidManifest.xml
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.super.app">
...
앱의 패키지 이름을 바꿀 필요가없는 경우 올바른 솔루션입니다. 이름을 바꾸려면 "flavours"를 사용해야합니다.
android {
...
productFlavors {
flavor1 {
applicationId 'com.super.superapp'
}
}
누군가에게 도움이 될 수 있습니다.
Eclipse 프로젝트를 Android Studio로 가져올 때 오류가 발생했습니다.
"오류 : 응용 프로그램 및 테스트 응용 프로그램 ID는 같을 수 없습니다."
그래도 이상하지만 build.gradle을 조사하고 두 개의 자리 표시자를 찾았습니다. 하나는 응용 프로그램 용이고 다른 하나는 테스트 응용 프로그램입니다.
이 게시물에서 제안한대로 testApplicationId를 제거하여 문제를 해결하는 데 도움이되었습니다.
참고 :이 설명은이 질문에 게시 된 오류와 관련이 없지만 유사한 오류가 발생하는 사람에게 도움이 될 수 있습니다.
lib에 대한 applicationId를 정의 할 수 없습니다. 그러나 라이브러리 패키지 이름을 제공하는 빌드 파일에 식별자를 사용하려는 경우 모듈에 대한 변수를 정의한 다음 필요에 따라 값을 사용할 수 있습니다.
예 : 도서관의 build.gradle
apply plugin: 'com.android.library'
def libraryGroupId = 'com.google.example'
def libraryArtifactId = project.getName()
def libraryVersion = '1.1'
또한 lib의 빌드 파일 자체에서 필요에 따라 아래 값을 사용할 수 있습니다.
android {
compileSdkVersion 28
defaultConfig {
minSdkVersion 21
targetSdkVersion 28
versionCode 1
versionName "$libraryVersion"
resValue "string", "Library", libraryGroupId"
}
}