gpt4 book ai didi

android - 如何为所有子项目/模块应用依赖项 Gradle Android Studio

转载 作者:太空宇宙 更新时间:2023-11-03 11:07:58 25 4
gpt4 key购买 nike

我是gradle脚本的新手,只有基础知识。
我的项目中有多个模块。这是屏幕截图。
enter image description here

在我的项目 build.gradle 文件中,我有基本的配置。
据我所知,此文件用于全局项目配置。

// Top-level build file where you can add configuration options common to all sub-projects/modules.

buildscript {
repositories {
jcenter()
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.2.3'
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.2+'

// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}

allprojects {
repositories {
maven { url "http://dl.bintray.com/populov/maven" }
jcenter()
mavenCentral()
maven { url "https://oss.sonatype.org/content/repositories/snapshots/" }

}
}

我所有的模块 build.grade 文件都有不同的依赖关系。例如。

dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
//noinspection GradleDependency
compile 'com.nostra13.universalimageloader:universal-image-loader:1.9.3'
compile 'com.etsy.android.grid:library:1.0.5'
compile 'com.squareup.picasso:picasso:2.3.2'
compile 'com.nineoldandroids:library:2.4.0'
compile 'com.fasterxml.jackson.core:jackson-databind:2.5.3'
compile 'com.fasterxml.jackson.core:jackson-core:2.5.3'
compile 'com.fasterxml.jackson.core:jackson-annotations:2.5.3'
compile 'com.android.support:support-v4:22.2.0'
compile 'com.github.ksoichiro:android-observablescrollview:1.5.1'
compile 'com.viewpagerindicator:library:2.4.1@aar'
compile 'com.android.support:cardview-v7:21.0.3'
compile 'com.android.support:recyclerview-v7:21.0.3'
compile 'org.codehaus.jackson:jackson-mapper-asl:1.9.13'
compile('com.mikepenz.materialdrawer:library:2.9.7@aar') {
transitive = true
}
compile project(':horizontalrecyclerview')
compile project(':ultimaterecyclerview')
compile 'org.lucasr.twowayview:core:1.0.0-SNAPSHOT@aar'
compile 'org.lucasr.twowayview:layouts:1.0.0-SNAPSHOT@aar'
compile 'com.yqritc:recyclerview-flexibledivider:1.2.4'
compile 'de.greenrobot:eventbus:2.4.0'
compile 'com.malinskiy:superrecyclerview:1.1.0'
compile 'com.android.support:support-v4:22.2.0'
compile 'com.android.support:appcompat-v7:22.2.0'
compile 'com.android.support:recyclerview-v7:22.1.1'
}

问题是什么?我的某些模块需要相同的库依赖项,或者所有模块都需要相同的库。当我将依赖项添加到每个模块 build.gradle 文件时,我在项目构建时遇到下一个错误。

Error:Execution failed for task ':app:processDebugResources'.
> Error: more than one library with package name 'com.mikepenz.iconics'
You can temporarily disable this error with android.enforceUniquePackageName=false
However, this is temporary and will be enforced in 1.0

我该如何解决这个问题?将依赖项添加到根 build.gradle 文件或其他一些解决方案中。
或者简单地听从建议并设置

android.enforceUniquePackageName=false

最佳答案

有多个存档具有相同的包(通过在其中包含类,或者在 AndroidManifest.xml 中包含类。我不确定)。这是文件开发人员的错误。

如果将以下任务添加到构建脚本并执行 :lib-that-has-error:extractCompileDependencies,您将在 build/compileDependencies 中找到提取的依赖项.

解决这个问题:

  • 首先确保您使用最新版本的依赖项。也许这个问题已经被报告和修复。
  • 如果最新版本的问题仍然存在,请检查哪些提取的依赖项包含相同的包。请这些依赖项的开发人员解决问题。
def compileDependenciesBuildDir = new File(buildDir, 'compileDependencies')

task copyCompileDependencies(type: Copy) {
from configurations.compile
into compileDependenciesBuildDir
}

task extractCompileDependencies() {
inputs.files(copyCompileDependencies)

doLast {
compileDependenciesBuildDir.listFiles(new FileFilter() {
@Override
boolean accept(File pathname) {
return pathname.isFile()
}
}).each {
def unzippedDirectory = new File(it.parent, it.name + '-unzipped')
ant.unzip(src: it, dest: unzippedDirectory, overwrite: 'true')
def classesJarFile = new File(unzippedDirectory, 'classes.jar')
if (classesJarFile.exists()) {
ant.unzip(src: classesJarFile, dest: new File(unzippedDirectory, 'classes'), overwrite: 'true')
}
}
}
}

关于android - 如何为所有子项目/模块应用依赖项 Gradle Android Studio,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30683028/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com