我有一個類的Android庫,我想使它成爲一個.aar庫。當我將minifyEnabled
設置爲true時,另一個android項目不能使用該庫(如果minifyEnabled
設置爲false,那麼也可以)。我想問一下什麼是proguard的與AAR庫與AAR庫問題的Proguard
HelloWorld.java
package com.example.hello;
import android.util.Log;
public class HelloWorld {
public static void Hello(){
Log.v("HelloWorld","Hello World!");
}
}
build.grandle
apply plugin: 'com.android.library'
android {
compileSdkVersion 24
buildToolsVersion "24.0.0"
defaultConfig {
minSdkVersion 15
targetSdkVersion 24
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile 'com.android.support:appcompat-v7:24.0.0'
}
proguard-rules.pro正確的配置
-dontwarn android.support.v7.**
-keep class android.support.v7.** { *; }
-keep interface android.support.v7.** { *; }
-keep class com.example.hello {public *;}
你可以嘗試將proguard-rules中的最後一行改爲「-keep class com.example.hello。** {public *;}' – basilisk
@basilisk它似乎能夠工作,但它仍然可以反編譯通過android studio?另外,這是處理依賴庫的正確方法嗎? – Joshua
@Joshua任何APK都可以反編譯。 Proguard不以任何方式保護APK或圖書館。它對不屬於API的類僅執行一點混淆處理。 – Robert