또한 다양한 옵션을 위해 모듈을 컴파일하는 데 문제가 발생했습니다.
내가 찾은 것 :
Gradle 3.0.1 이후 publishNonDefault true
lib build.gradle
파일에 추가 할 필요가없는 것 같습니다 .
클래스를 디 컴파일 한 후 다음을 BaseExtension
발견했습니다.
public void setPublishNonDefault(boolean publishNonDefault) {
this.logger.warn("publishNonDefault is deprecated and has no effect anymore. All variants are now published.");
}
그리고 대신 :
dependencies {
...
Compile project(path: ':lib', configuration: 'config1Debug')
}
다음을 사용해야합니다.
dependencies {
...
implementation project(':lib')
}
중요한 점 configurations {...}
은 build.gradle
.
따라서 앱 build.gradle
파일 의 최종 변형 은 다음과 같습니다.
buildTypes {
debug {
...
}
release {
...
}
}
flavorDimensions "productType", "serverType"
productFlavors {
Free {
dimension "productType"
...
}
Paid {
dimension "productType"
...
}
Test {
dimension "serverType"
...
}
Prod {
dimension "serverType"
...
}
}
configurations {
FreeTestDebug
FreeTestRelease
FreeProdDebug
FreeProdRelease
PaidTestDebug
PaidTestRelease
PaidProdDebug
PaidProdRelease
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation project(':lib')
...
}
또한 필터 변형 을 사용 하여 빌드 변형을 제한 할 수 있습니다 .
추신은 다음 settings.gradle
과 같이 파일에 모듈을 포함하는 것을 잊지 마십시오 .
include ':app'
include ':lib'
project(':lib').projectDir = new File('app/libs/lib')
3.4.2
.Android 플러그인을 최신 버전으로 업그레이드하고 최신 버전으로 gradle하더라도5.5.1
컴파일 시간에 여전히 실패했거나 aapt에서 리소스 링크가 실패 했거나 라이브러리 내부의 기호 를 찾을 수 없습니다 모듈