Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/199.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何混淆Android库模块_Android_Gradle_Proguard_Aar - Fatal编程技术网

如何混淆Android库模块

如何混淆Android库模块,android,gradle,proguard,aar,Android,Gradle,Proguard,Aar,我有3个模块:2个Android应用程序和1个Android库,在这个问题中我称之为“公共模块” Android库模块包含在两个Android应用程序中,并提供两个应用程序之间的共享功能。这两个应用程序都依赖于使用的公共模块:实现项目(“:mylibrary”) 由于Android库模块包含敏感的功能,我试图混淆它,以便使应用程序的这一部分更难进行反向工程。同时,我不想混淆这两个Android应用程序,因为它们很大,在混淆后测试所有功能非常耗时,不值得付出努力 我在公共模块的build.grad

我有3个模块:2个Android应用程序和1个Android库,在这个问题中我称之为“公共模块”

Android库模块包含在两个Android应用程序中,并提供两个应用程序之间的共享功能。这两个应用程序都依赖于使用的公共模块:
实现项目(“:mylibrary”)

由于Android库模块包含敏感的功能,我试图混淆它,以便使应用程序的这一部分更难进行反向工程。同时,我不想混淆这两个Android应用程序,因为它们很大,在混淆后测试所有功能非常耗时,不值得付出努力

我在公共模块的
build.gradle
文件中启用了
minifyEnabled
,并将保留规则添加到
proguard rules.pro
文件中。当我在其上运行
assembleerelease
任务时,生成的
.aar
文件会被混淆,但当我在任一应用程序上尝试
assembleerelease
时,公共库中的类根本不会被混淆

我能想到的唯一解决方案是生成公共库的
.aar
文件,并在应用程序中手动导入,这将起作用,但每次我对公共模块进行更改并将其导入多个应用程序时,都需要生成一个新的
.aar
文件,这可能非常耗时,并且容易出现人为错误。我还必须跟踪
.aar
文件每个版本上的映射文件


关于如何自动化这个过程,或者如何配置公共模块以在构建消费者模块时使其变得模糊,有什么想法吗

试试
发布实施项目(“:mylibrary”)

谢谢你的回答。我尝试了
releaseemplementation
,但仍然没有混淆。您找到解决方案了吗?