다른 프로젝트 (projAPK)에 대한 종속성으로 프로젝트 (projLib)를 가져 오려고했습니다.
projAPK gradle에는 다음이 있습니다.
dependencies {
compile project(':libs:NewsAPI')
compile project(':projLib')
}
하지만 gradle을 동기화하면 다음 오류가 발생합니다.
Error : Dependency Android_2015 : projLib : unspecified on project projAPK는 컴파일 종속성으로 지원되지 않는 APK 아카이브로 해석됩니다. 파일 : /Users/myname/Documents/Development/Android_2015/libs/projAPK/build/outputs/apk/projLib-release-unsigned.apk
그래서 이것에 대한 두 가지 해결책이 있다고 생각합니다.
- 어떻게 든 gradle은 projLib이 apk로 컴파일되어서는 안되는 라이브러리라고 생각하게 만듭니다.
- 어떻게 든 gradle이 projLib를 명시 적으로 컴파일하지 않도록합니다.
문제는 그 방법을 찾을 수 없다는 것입니다. 당신이 도울 수 있다면 멋질 것입니다 🙂
답변
에서 projLib 의 build.gradle 파일,이 같은 문을 볼 수 있습니다 :
apply plugin: 'com.android.application'
Gradle에 애플리케이션으로 빌드하여 APK를 생성하도록 지시합니다. 다음과 같이 변경하면 :
apply plugin: 'com.android.library'
라이브러리로 빌드되어 AAR을 생성하고 작동합니다.
별도의 APK를 생성하기 위해 projLib 가 필요한 경우 필요한 공통 코드를 세 번째 라이브러리 모듈로 가져 와서 두 APK가 종속되도록하기 위해 몇 가지 리팩토링을 수행해야합니다.
라이브러리는를 설정할 수 applicationId
없으므로 해당 효과에 대한 오류 메시지가 표시되면 라이브러리의 빌드 스크립트에서 제거하십시오.
답변
모듈 gradle 파일에서 –
교체 apply plugin: 'com.android.application'
로apply plugin: 'com.android.library'
그런 다음 제거 applicationId "xxx.xxx.xxxx"
청소 및 구축
답변
이 줄을 라이브러리 gradle
파일에 추가 하고 다른 섹션을 제거하십시오.
apply plugin: 'com.android.library'
android {
compileSdkVersion 23
buildToolsVersion '23.0.2'
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.squareup.picasso:picasso:2.4.0'
compile 'com.google.code.gson:gson:2.2.4'
compile 'com.android.support:appcompat-v7:23.1.1'
compile 'com.android.support:gridlayout-v7:23.1.1'
,...
}