我在项目中使用了多个Android库和模块。每个都有自己的v4.Support库。我正在获取
java.util.zip.ZipException:重复条目 。当我在项目中搜索重复的类文件时,由于每个库中都有多个v4.support
lib,这些类有多个文件。我知道这个问题在这里已经被问过很多遍了,但对我来说却无济于事。
我的问题是:如何删除这些多个v4.support文件?我只想将此v4.support lib放一次,所有其他模块都应从那里引用它。我该如何实现?
以下是我的build.gradle脚本
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
mavenCentral()
maven { url 'https://maven.fabric.io/public' }
}
dependencies {
classpath 'com.android.tools.build:gradle:1.1.0'
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.4'
//classpath 'com.crashlytics.tools.gradle:crashlytics-gradle:1.+'
classpath 'io.fabric.tools:gradle:1.15.2'
}
}
apply plugin: 'android'
apply plugin: 'com.android.application'
apply plugin: 'android-apt'
apply plugin: 'io.fabric'
repositories {
maven { url 'https://maven.fabric.io/public' }
}
dependencies {
compile fileTree(dir: 'libs', include: '*.jar')
compile('com.crashlytics.sdk.android:crashlytics:2.2.3@aar') {
transitive = true
}
compile('com.android.support:multidex:1.0.0')
//compile ('com.android.support:appcompat-v7:22.1.0')
compile project(':..:..:..:..:..:..:android_libraries:appcompat')
compile project(':..:..:..:..:..:..:android_libraries:facebook')
compile project(':..:..:..:..:..:..:android_libraries:google_play_services:libproject:google-play-services_lib')
compile project(':..:..:..:..:..:..:android_libraries:SlidingMenu')
compile project(':..:..:..:..:..:..:android_libraries:StickingGridViewLibrary')
compile project(':..:..:..:..:..:..:android_libraries:view_pager_library')
compile project(':..:..:..:..:..:..:android_libraries:ZXing2.3')
compile project(':..:..:..:..:..:..:android_libraries:xyz')
compile project(':..:..:..:..:..:..:android_libraries:apptentive')
}
android {
compileSdkVersion 21
buildToolsVersion "21.1.0"
defaultConfig {
versionCode 1
versionName "1.0"
minSdkVersion 15
targetSdkVersion 21
// Enabling multidex support.
multiDexEnabled true
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_7
targetCompatibility JavaVersion.VERSION_1_7
}
ant.importBuild './../../../../../../buildscripts/wlbuild.xml'
apt {
arguments {
androidManifestFile variant.outputs[0].processResources.manifestFile
// if you have multiple outputs (when using splits), you may want to have other index than 0
resourcePackageName 'com.kohls.mcommerce.opal'
// If you're using Android NBS flavors you should use the following line instead of hard-coded packageName
// resourcePackageName android.defaultConfig.applicationId
// You can set optional annotation processing options here, like these commented options:
// logLevel 'INFO'
// logFile '/var/log/aa.log'
}
}
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
resources.srcDirs = ['src']
aidl.srcDirs = ['src']
renderscript.srcDirs = ['src']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
}
// Move the tests to tests/java, tests/res, etc...
instrumentTest.setRoot('tests')
// Move the build types to build-types/<type>
// For instance, build-types/debug/java, build-types/debug/AndroidManifest.xml, ...
// This moves them out of them default location under src/<type>/... which would
// conflict with src/ being used by the main source set.
// Adding new build types or product flavors should be accompanied
// by a similar customization.
debug.setRoot('build-types/debug')
release.setRoot('build-types/release')
}
buildDir = './../../../../../../build/native'
lintOptions {
abortOnError false
}
dexOptions {
incremental true
javaMaxHeapSize "4g"
}
packagingOptions {
exclude 'META-INF/LICENSE.txt'
}
}
我收到这样的错误。每次我清理项目时,项目都会成功完成。但是,当我尝试给出Run命令时,它显示以下类型的错误。
Execution failed for task ':packageAllDebugClassesForMultiDex'.
> java.util.zip.ZipException: duplicate entry: android/support/v4/media/TransportMediatorCallback.class
当我解决上述问题并找到解决方法时。 packageAllDebugClassesForMultiDex
错误的主要原因与您在Stackoverflow的所有其他帖子中发现的相同,即,您必须具有一些类文件,这些类文件在项目中可以多次使用。就我而言,我在上述项目中有很多模块,例如Facebook,谷歌付费服务和滑动菜单等。所有这些模块都有自己的v4.support
jar文件副本。我所做的是从所有这些库的libs文件夹中删除所有v4.support文件。然后从我的SDK添加依赖项到v4.support库,即Android
Studio项目结构中的com.android.support库。为了这..
2 *逐个选择这些模块中的每一个。
3 在最后一个名为Dependency的选项卡中,如果该模块的libs文件夹中只有v4.support lib(或有问题的一个),则删除 compile fileTree(dir:’libs’,include:’ .jar’)** 。
4 通过单击 +* 添加v4.support库, 然后添加库并从SDK中选择v4.support库。
完成。清理项目,然后重新构建。 packageAllDebugClassesForMultiDex 问题已经消失。
至于传递依赖,如果您知道在生成项目时导致dex错误中的Duplicate文件的确切依赖,则可以将其排除为belo
compile(project(':..:..:..:..:..:..:android_libraries:walletsdkandroidmodule')) {
exclude group: 'com.google.code.gson'
}
如果您想要任何模块中的任何传递依赖,例如
compile('com.crashlytics.sdk.android:crashlytics:2.2.3@aar') {
transitive = true
}
我在Android Studio整天都在和这个错误作斗争。项目是从eclipse解决方案导入的。我一直试图实现所有的修复,列出了类似的帖子,没有任何工作。我是一个Android初学者。 我很乐意提供任何进一步的信息。
我通过它的maven存储库将Zendesk mobile sdk集成到了我的项目中,它就不会再构建了。它和我正在使用的毕加索图书馆有些冲突。我在构建过程中遇到以下错误: 我在app文件夹上运行了,这是我在zendesk模块下发现的: 所以zendesk也在使用毕加索,但与我在项目中的版本不同。我试着把毕加索排除在zendesk之外,是这样的: 但这会在应用程序的其他组件中导致运行时异常。我得到一个
我有一个应用程序,在模拟器上工作很好,但在手机上启动时崩溃。 我说我只是将SDK文件夹的内容提取到libs,而不是在libs中只有一个包含所有内容的parse文件夹,这是对的吗?
花了将近一天的时间搜索问题,但没有运气。这是由于依赖项的冗余。哪一个是重复的还找不到。 在我的身体里。gradle文件 错误:任务“:app:transformClassesWithJarMergingForDebug”的执行失败。 通用域名格式。Android建筑应用程序编程接口。使改变TransformException:java。util。拉链ZipException:重复条目:org/ap
我正在使用Gradle构建一个JavaFX应用程序。我经常遇到的问题是META-INF/License的“重复输入”错误。 为了完整起见,下面是gradle assemble生成的错误: 和我的gradle.build脚本:
问题内容: 我必须向现有表添加唯一约束。很好,除了表已经有数百万行,而且许多行违反了我需要添加的唯一约束。 删除有问题的行的最快方法是什么?我有一条SQL语句,该语句查找重复项并将其删除,但要花很长时间才能运行。有没有其他方法可以解决此问题?也许备份表,然后在添加约束后还原表? 问题答案: 其中一些方法似乎有些复杂,我通常这样做是: 给定table table,要在()上对其进行唯一化,使行保持为