我在我的项目中包含的一个库遇到了一些麻烦:在开始时,这只是一个相互冲突的依赖问题,我通过排除< code>support-v4解决了这个问题,它是一个公共共享的模块。
问题是其中一个lbsLib-version
似乎是在开发人员构建之前在根项目中使用普通的. jar
文件构建的。
通过运行<代码>。/gradlew app:dependencies我验证了在构建图中没有引用依赖关系。
我发现这个support-v4
嵌入到类中。jar
位于:app/build/internedites/exploded aar/MyQaaAndroid/lbsLib-release/nuntined/classes。jar/
,如下图所示:
我自己无法重建项目,因为它不是开源库,所以有两个问题:
>
如果我添加编译 '网站支持:支持-v4:18.0.'
到 build.gradle
,在构建时会引发多个 dex 文件
错误,因此库被引用两次。
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)
`
如果我删除所有需要 support-v4
的库,则会在应用程序运行时引发缺少依赖项的错误。
所以我想知道是否有可能排除这个< code >。jar文件或使其他库依赖于< code>lbsLib-release嵌入的< code>support-v4 。jar
。
compile (project(':lbsLib-release')) {
exclude module: 'support-v4'
}
compile ('com.sothree.slidinguppanel:library:2.0.4'){
exclude module: 'support-v4'
}
compile('com.google.android.gms:play-services:6.5.87') {
exclude module: 'support-v4'
}
在多个dex文件中定义land roid/support/v4/accessibilityservice/AccessibilityServiceInfoCompat很容易,因为< code > exclude module:' support-v4 '
例子
dependencies {
compile('com.commonsware.cwac:camera-v9:0.5.4') {
exclude module: 'support-v4'
}
compile 'com.android.support:support-v4:18.0.+'
}
尝试在根< code>build.gradle处使用< code > resolution strategy (API参考)。
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.0.0'
}
}
allprojects {
repositories {
jcenter()
}
configurations.all((Closure) {
resolutionStrategy {
force 'com.android.support:support-v4:21.0.2' // your version of support library
}
})
}
我试图从。classpath文件中排除一些JAR,该文件是由gradle eclipse插件生成的。尽管我在build.gradle中做了以下工作来排除这些jar,但类路径仍然包含这些jar文件。 我已经尝试了所有的方法提到的年级文件,但没有一个对我有效。我使用的是gradle 2.7版。要创建类路径,我运行'gradle eclipse'命令。有人能帮帮我吗。
我试图从gradle eclipse插件生成的.classpath文件中排除一些JAR。虽然我在build.gradle中做了以下工作来排除这些jar,但类路径仍然包含这些jar文件。 我已经尝试了所有的方法提到的梯度文件,但他们没有一个对我有效。我用的是Gradle2.7版本。为了创建类路径,我运行'gradle eclipse'命令。有人能帮我一下吗。
我正在尝试编译一个APK,它在一个JAR文件中使用一个遗留库。 我已经做了其他的问题,但没有一个对我有帮助:1、2、3和4。我甚至在github上发现了一个与我的痛苦gradle/gradle/issues/1184相关的未解决问题--没有列出本地文件依赖关系...这很糟糕,因为我花了很多时间思考文件依赖项没有被包括在内。 总之,这是我项目的build.gradle文件: 这是应用程序的构建.Gr
问题内容: 我正在做一个Maven项目。当在一个想法中编译和运行我的项目时,一切都很好,但是每当我创建jar文件时,都无法将web / lib /中的外部jar文件复制到jar文件中。为什么会发生这种情况?我可以将所有文件插入jar文件吗? 问题答案: 是的,我找到了解决方案。
我想镜像两个文件夹,但排除某些文件类型(例如js文件)。我可以用 /XF选项来做到这一点。 我遇到的问题是,如果目标文件夹中有一个带有js文件的Foo文件夹,但源文件夹中没有Foo文件夹,那么下面的robocopy命令将删除目标端的Foo文件夹以及其中的js文件。 机器人复制。exe d:\Source d:\Destination/E/PURGE/XF*。js/COPYALL/FFT 我想要的是
我想包括JavaDoc for库,但在网站上,他们只提供一个HTML。 我试过了: 下载html并将文件夹添加为jar的JavaDoc, 下载并压缩到index.html,并将下载的文件夹压缩到 添加URL 但有什么好结果。. 我怎样才能做到这一点?