Android Studio 1.0 및 '라이브러리 프로젝트에서 applicationId를 설정할 수 없음'오류


109

Android Studio를 1.0으로 업데이트 한 후 다음 오류가 표시됩니다.

오류 : 라이브러리 프로젝트는 applicationId를 설정할 수 없습니다. applicationId는 기본 구성에서 'com.super.app'으로 설정됩니다.

제안 된대로 Gradle 플러그인을 업데이트했지만이 문제를 해결하는 방법을 이해하지 못했습니다.

답변:


208

정보를 바탕으로 :

도서관 프로젝트의 ApplicationId

applicationId를 사용하여 라이브러리 프로젝트의 패키지를 사용자 지정할 수 없습니다. 패키지 이름은 라이브러리 프로젝트에서 고정되어야하며 매니페스트에서 packageName으로 지정되어야합니다. Gradle 플러그인은 이전에이 제한을 적용하지 않았습니다.

라이브러리의 build.gradle파일 에서 applicationId 변수를 제거 하면 문제가 해결됩니다.


고마워요, 당신은 저를 올바른 방향으로 인도합니다. 내가 가진 "맛"문제를 설명하는 답변을 추가했습니다.
Seraphim의

1
@Joel : 모듈을 라이브러리로 변환했지만 제거 할 ApplicationId를 찾을 수 없습니다. ApplicationId는 build.gradle 파일의 dr이 아닙니다. 내가 안드로이드 스튜디오에서 찾을 수있는 당신은 1.0.1 말해 줄 수
쿠마에게

이 링크가 질문에 답할 수 있지만 여기에 답변의 필수 부분을 포함하고 참조 용 링크를 제공하는 것이 좋습니다. 링크 된 페이지가 변경되면 링크 전용 답변이 무효화 될 수 있음
Nerdroid

62

정답에 대한 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'
       }
   }

Joel이 가져야 할 예를 포함했기 때문에 너무 나쁜 두 가지 답변을 확인할 수 없습니다.
Androidcoder

1
applicationID 라인을 제거하면 Play 스토어에 게시 할 수 있습니까? (업데이트를 의미합니다) Google Play에는 애플리케이션 ID가 없기 때문입니다.
gurkan 스택

1
@gurkanstack Gradle 파일에서 줄을 제거하면 AndroidManifest.xml "package"에 정의 된 네임 스페이스가 게시에 사용됩니다.
Seraphim의

1

누군가에게 도움이 될 수 있습니다.

Eclipse 프로젝트를 Android Studio로 가져올 때 오류가 발생했습니다.

"오류 : 응용 프로그램 및 테스트 응용 프로그램 ID는 같을 수 없습니다."

그래도 이상하지만 build.gradle을 조사하고 두 개의 자리 표시자를 찾았습니다. 하나는 응용 프로그램 용이고 다른 하나는 테스트 응용 프로그램입니다.

이 게시물에서 제안한대로 testApplicationId를 제거하여 문제를 해결하는 데 도움이되었습니다.

참고 :이 설명은이 질문에 게시 된 오류와 관련이 없지만 유사한 오류가 발생하는 사람에게 도움이 될 수 있습니다.


0

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"
 }
}
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.