답변:
이 정보를 바탕으로 :
도서관 프로젝트의 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"
}
}