buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
就會有一堆 cannot find symbol class 的 errors。
解決的方法有兩種:
- 把 library project 的 proguard-rules.pro 裡的定義都搬到 application project 的 proguard-rules.pro,再把 library project 的 minifyEnabled 設為 false。
- 另一種就是把 library project 的 proguardFiles 改成 consumerProguardFiles 就行了 (minifyEnabled 也不須設定,minifyEnabled 是對應 proguardFiles 的)。
consumerProguardFiles 的定義是:
ProGuard rule files to be included in the published AAR.
These proguard rule files will then be used by any application project that consumes the AAR (if ProGuard is enabled).
This allows AAR to specify shrinking or obfuscation exclude rules.
This is only valid for Library project. This is ignored in Application project.
- http://stackoverflow.com/questions/30820915/android-studio-proguard-handling-in-multi-library-projects
- http://google.github.io/android-gradle-dsl/current/com.android.build.gradle.internal.dsl.BuildType.html
沒有留言:
張貼留言