Android AAR图书馆发行的进展

Android AAR图书馆发行的进展,android,android-proguard,aar,Android,Android Proguard,Aar,我有一个只有一个类的android库,我想把它变成一个.aar库。当我将minifyEnabled设置为true时,另一个android项目无法使用该库(如果minifyEnabled设置为false,则可以)。我想问一下proguard与AAR库的正确配置是什么 HelloWorld.java package com.example.hello; import android.util.Log; public class HelloWorld { public static voi

我有一个只有一个类的android库,我想把它变成一个.aar库。当我将
minifyEnabled
设置为true时,另一个android项目无法使用该库(如果
minifyEnabled
设置为false,则可以)。我想问一下proguard与AAR库的正确配置是什么

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 *;}

任何APK都可以反编译。Proguard只会使反编译代码更难理解

尝试将Proguard规则中的最后一行更改为

-keep class com.example.hello.** {public *;}

至于Android Studio能够反编译,你无法阻止。如果你想保护你的代码,我想你能做的最好的事情就是混淆大部分代码,然后通过添加相关的proguard规则来扩展你所需要的功能。你能试着把proguard规则中的最后一行改成
-keep class com.example.hello.*{public*;}
@basilisk它似乎可以工作,但它仍然可以由android studio反编译,这正常吗?另外,这是处理依赖项库的正确方法吗?@Joshua任何APK都可以反编译。Proguard不会以任何方式保护APK或库。它只对不属于API的类执行一点模糊处理。当我使用生成的aar文件时,我有一种奇怪的行为,我的一些aar对象出现了“无法解析符号”错误。但它编译正确。两个星号不再编译了。还有其他解决办法吗?