私は1つのクラスを持つアンドロイドライブラリを持っています。私はそれを.aarライブラリにしたいと思います。 minifyEnabled
をtrueに設定すると、別のアンドロイドプロジェクトでライブラリを使用できなくなります(minifyEnabled
がfalseに設定されていると問題ありません)。私は、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とProGuardのの正しい設定が何であるかをお尋ねしたいと思います
-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動作しているようですが、それでもまだデコンパイルできるアンドロイドスタジオで?また、依存関係ライブラリを扱う正しい方法ですか? – Joshua
@JoshuaどのAPKでもデコンパイルすることができます。 Proguardは、いかなる方法でもAPKまたはライブラリを保護しません。 APIに属していないクラスに対しては少し難読化されます。 – Robert