繁体   English   中英

Proguard与AAR库问题

[英]Proguard with AAR library issue

我有一个带有一个类的android库,我想把它变成一个.aar库。 当我将minifyEnabled设置为true时,另一个android项目不能使用该库(如果minifyEnabled设置为false则没问题)。 我想问一下使用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 *;}

至于能够反编译的Android Studio,你无法阻止它。 如果您想保护您的代码,我认为您可以做的最好的事情就是对其中的大部分进行模糊处理,然后通过添加相关的proguard规则,通过您没有混淆的接口扩展所需的功能。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM