Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/181.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 library proguard软件包混淆会产生a.a.a.a.a冲突_Android_Proguard_Android Library - Fatal编程技术网

Android library proguard软件包混淆会产生a.a.a.a.a冲突

Android library proguard软件包混淆会产生a.a.a.a.a冲突,android,proguard,android-library,Android,Proguard,Android Library,我正在编写两个Android库。当我对这两个库进行模糊处理时,它们中的模糊代码都包含一个名为a.a.a.a的类,当尝试在同一应用程序中使用这两个库时,会导致以下错误: 在模块classes.jar(lib1)和classes.jar(lib2)中找到重复的类a.a.a.a.a.a 如何防止Proguard混淆前3个包,最终导致: my.domain.lib1.a.a和my.domain.lib2.a.a 编辑:作为构建库的一部分,混淆正在发生,在构建应用程序时不会出现这种情况。这可以通过将-re

我正在编写两个Android库。当我对这两个库进行模糊处理时,它们中的模糊代码都包含一个名为
a.a.a.a
的类,当尝试在同一应用程序中使用这两个库时,会导致以下错误:

在模块classes.jar(lib1)和classes.jar(lib2)中找到重复的类a.a.a.a.a.a

如何防止
Proguard
混淆前3个包,最终导致:

my.domain.lib1.a.a
my.domain.lib2.a.a


编辑:作为构建库的一部分,混淆正在发生,在构建应用程序时不会出现这种情况。

这可以通过将
-repackageclasses my.domain.lib#ofs
放在每个库的
proguard rules
文件中来解决,同时分别用
1
2
替换
。这将把所有模糊类移动到
my.domain.lib#.ofs
包中,而所有未模糊类将保留在其原始包中,并且保证不会发生冲突

正如
Proguard
所述:

-重新打包类[包名称]

指定通过将重命名的所有类文件移动到单个给定包中来重新打包这些类文件

另一个解决方案是使用
-keeppackagenames
。不幸的是,我找不到办法让它只保留前3个包

请参阅
Proguard

-keeppackagenames[package\u filter]

指定不混淆给定的包名称


将下面的代码添加到
proguard rules.pro
文件中

-keeppackagenames