gpt4 book ai didi

java - 导入 Xerces 库时无法构建应用程序(退出值 1)

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:16:30 25 4
gpt4 key购买 nike

当我导入 Xerces 库时,我似乎无法构建我的应用程序。由于之前的问题,我已经在使用 multidex,因此我知道这一切都已正确设置。

我花了几天时间在网上查看并尝试了各种版本的 Xerces 并对我的 build.gradle 进行了调整,但无法解决问题。我已经尝试清理重建,重新设置 Android Studio/我的 PC,使用 jar 直接编译,现在正式没有想法。

下面是我的 build.gradle 设置:

android {
compileSdkVersion 23
buildToolsVersion "23.0.2"

defaultConfig {
applicationId "#packageid#"
minSdkVersion 18
targetSdkVersion 23
versionCode 1
versionName "0.8"
multiDexEnabled true
}

buildTypes {
debug {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}

dependencies {
// compile fileTree(include: ['*.jar'], dir: 'libs')
testCompile 'junit:junit:4.12'
compile 'com.android.support:multidex:1.0.1'
compile 'com.google.android.gms:play-services:8.4.0'
compile 'com.android.support:appcompat-v7:23.1.1'
compile 'com.android.support:support-v4:23.1.1'
compile 'com.android.support:design:23.1.1'
compile 'me.dm7.barcodescanner:zbar:1.8.4'
compile project(':rangebar-1.3')
compile('com.crashlytics.sdk.android:crashlytics:2.5.5@aar') {
transitive = true;
}
compile 'com.batch.android:batch-sdk:1.5'
compile 'xerces:xercesImpl:2.11.0'
// compile files('libs/xercesImpl-2.9.1.jar')
}

我也已经扩展了我的应用程序,因此在类里面使用了以下内容:

@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);

MultiDex.install(this);
}

但是,每次我尝试构建时,我都会收到以下错误:

Error:Execution failed for task ':app:transformClassesWithMultidexlistForDebug'.
> com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files\Java\jdk1.7.0_79\bin\java.exe'' finished with non-zero exit value 1

下面是我的 gradle 构建错误日志的结尾部分:

Reading program jar [C:\Documents\MobileProjects\IA\Android\app\build\intermediates\transforms\jarMerging\debug\jars\1\1f\combined.jar]
Reading library jar [C:\AppData\Local\Android\sdk\build-tools\23.0.2\lib\shrinkedAndroid.jar]
Preparing output jar [C:\Documents\MobileProjects\IA\Android\app\build\intermediates\multi-dex\debug\componentClasses.jar]
Copying resources from program jar [C:\Documents\MobileProjects\IA\Android\app\build\intermediates\transforms\jarMerging\debug\jars\1\1f\combined.jar]
:app:transformClassesWithMultidexlistForDebug FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:transformClassesWithMultidexlistForDebug'.
> com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files\Java\jdk1.7.0_79\bin\java.exe'' finished with non-zero exit value 1

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

最佳答案

既然你尝试过clean re-building,re-setting Android Studio/my PC,直接使用jar编译,现在我想给你一些建议。希望对您有所帮助。

在给出建议之前,我想告诉你先看这篇文章:Configuring Your App for Multidex with Gradle .然后您可以按照建议进行操作。

建议1:

对于gradle bulid,必须遵循

         dev utilizes minSDKVersion = 21 to allow the Android gradle plugin
to pre-dex each module and produce an APK that can be tested on
Android Lollipop without time consuming dex merging processes.

您已将 minSdkVersion 用作 "minSdkVersion 18"。所以请更新它。

建议2:

注意:对于 Android Plugin for Gradle 1.1 以下的版本,您需要为 multidex-instrumentation 添加以下依赖:

dependencies {
androidTestCompile('com.android.support:multidex-instrumentation:1.0.1') {
exclude group: 'com.android.support', module: 'multidex'
}
}

注意:目前不支持使用 multidex 创建测试 APK。

建议三:

您的输入 jar 包含多个同名资源文件。 ProGuard 继续像往常一样复制资源文件,跳过任何具有以前使用过的名称的文件。再一次,警告可能表明存在一些问题,因此建议删除重复项。一种方便的方法是在输入 jar 上指定过滤器。没有关闭这些警告的选项。

The standard Android build process automatically specifies the input jars for you. There may not be an easy way to filter them to remove these warnings. You could remove the duplicate resource files manually from the input and the libraries.

ProGuard 可能会在遇到解析错误或 I/O 错误,或一些更严重的警告时终止:

建议4:

问题内存。我的 Messages Gradle Build 中有类似的消息

错误:任务 ':app:dexDebug' 执行失败。

com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files\Java\jdk1.8.0_45\bin\java.exe'' finished with non-zero exit value 1 I didn't have free RAM on my laptop with the OS windows 8.1. I closed a few programs that I don't need. After that, I had more free RAM and my project was built in android studio.

建议5:

有些人建议关闭 Android Studio 并终止 java 进程,这些进程非常大 (1.2 GB)。然后你就可以用gradle运行了。这很有帮助。

建议6:

安装最新版本的构建工具。调整你的 build.gradle 以使用

`buildToolsVersion "22.0.1"`

它对某些情况有帮助。

关于java - 导入 Xerces 库时无法构建应用程序(退出值 1),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36892945/

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