相关疑难解决方法(0)

Gradle排除或添加库类classes.jar中包含的JAR文件的引用

我在我的项目中包含的库遇到了一些麻烦:一开始它只是一个冲突的依赖性问题,我通过排除 support-v4哪个是共同的共享模块来解决.

问题是其中一个lbsLib-release似乎是.jar在开发人员构建之前在根项目中使用普通文件构建的.

通过运行./gradlew app:dependencies我验证了构建图中没有引用依赖项.

我发现它support-v4嵌入了classes.jar位于:app/build/intermedites/exploded-aar/MyQaaAndroid/lbsLib-release/unspecified/classes.jar/如下图所示:

在此输入图像描述

我不能自己重建项目,因为它不是一个开源的lib,所以有两个问题:

  1. 如果我添加compile 'com.android.support:support-v4:18.0.+'build.gradle一个multiple dex file错误是在编译的时候,因此库引用了两次抛出.

    UNEXPECTED TOP-LEVEL EXCEPTION: com.android.dex.DexException: Multiple dex files define Landroid/support/v4/app/BackStackState;
    at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:596)
    at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:554)
    at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:535)
    at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:171)
    at com.android.dx.merge.DexMerger.merge(DexMerger.java:189)
    at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:454)
    at com.android.dx.command.dexer.Main.runMonoDex(Main.java:303)
    at com.android.dx.command.dexer.Main.run(Main.java:246)
    at com.android.dx.command.dexer.Main.main(Main.java:215)
    at com.android.dx.command.Main.main(Main.java:106)
    
    Run Code Online (Sandbox Code Playgroud)

    `

  2. 如果我删除所有需要support-v4它的库,则会在应用程序运行时抛出缺少的依赖项错误.

所以我想知道是否有可能.jar从构建中排除此文件或使其他libs取决于lbsLib-release嵌入式support-v4 .jar.

compile (project(':lbsLib-release')) {
    exclude module: 'support-v4'
}

compile ('com.sothree.slidinguppanel:library:2.0.4'){ …
Run Code Online (Sandbox Code Playgroud)

android gradle android-gradle-plugin

6
推荐指数
1
解决办法
6900
查看次数

标签 统计

android ×1

android-gradle-plugin ×1

gradle ×1