Android库proguard程序包混淆会产生a.a.a.a.碰撞

问题描述 投票:1回答:1

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

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

如何防止Proguard混淆前三个软件包的结尾:

[my.domain.lib1.a.amy.domain.lib2.a.a

编辑:混淆是在构建库时发生的,而不是在构建应用程序时发生的。

android proguard android-library
1个回答
0
投票

这意味着在运行时,您对两个库的依赖结果都与proguard给出的名称相同。为避免此问题,请尝试使用如下所示:

android {
    ...

    configurations {
        all*.exclude module: 'support-v4' 
        // This removes all other versions of `support-v4` 
        // if it gets duplicated from all the artifacts.
    }
    ...

}

我已经在v4上遇到了这个问题...它可能与您的代码中的其他内容有关。.但是主要是在v4中发生的。有关更多知识:https://discuss.gradle.org/t/how-do-i-exclude-specific-transitive-dependencies-of-something-i-depend-on/17991

© www.soinside.com 2019 - 2024. All rights reserved.