在android studio

时间:2015-09-13 08:05:17

标签: java android android-studio gradle

我有一个包含模块的android项目 我在项目中添加了一个名为lib的库,然后我添加了一个jar(我在其他项目中创建的jar)。 然后点击文件 - >项目结构 - >选择我的模块 - >依赖 - >添加了jar依赖项。 当我尝试创建apk时,我收到以下错误:

  

任务执行失败':app:preDexDebug'。   com.android.ide.common.process.ProcessException:org.gradle.process.internal.ExecException:进程'命令'C:\ Program Files \ Java \ jdk1.8.0_60 \ bin \ java.exe''以非完成零退出值1

我已尝试将范围依赖关系更改为已提供,但没有帮助, 此外,我已经尝试创建新的模块,在jar中有一个依赖,这是行不通的。
我的build.gradle:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 22
    buildToolsVersion "23.0.1"
    defaultConfig {
        applicationId "com.myprj"
        minSdkVersion 15
        targetSdkVersion 22
        versionCode 1
        versionName "1.0"

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

dependencies {
    compile fileTree(include: ['*.jar'], dir: 'libs')
    compile 'com.android.support:appcompat-v7:22.2.0'
    compile 'com.android.support:support-v4:22.2.0'
    'com.sun.jersey:jersey-client:1.18.1'
    'com.sun.jersey:jersey-json:1.18.1'
    'org.codehaus.jackson:jackson-jaxrs:1.1.1'
    'com.owlike:genson:0.99'
    provided files('libs/MyJar.jar')
}

apply plugin: 'com.android.application' android { compileSdkVersion 22 buildToolsVersion "23.0.1" defaultConfig { applicationId "com.myprj" minSdkVersion 15 targetSdkVersion 22 versionCode 1 versionName "1.0" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } productFlavors { } } dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') compile 'com.android.support:appcompat-v7:22.2.0' compile 'com.android.support:support-v4:22.2.0' 'com.sun.jersey:jersey-client:1.18.1' 'com.sun.jersey:jersey-json:1.18.1' 'org.codehaus.jackson:jackson-jaxrs:1.1.1' 'com.owlike:genson:0.99' provided files('libs/MyJar.jar') }
有什么建议?


更新

我解决了我的问题,另一个jar用java 1.8设置编译,我把它改为1.7并重新创建了jar,这解决了我的问题。

2 个答案:

答案 0 :(得分:1)

删除此行:

provided files('libs/MyJar.jar')

你已经将libs目录中的每个.jar包含在上面的几行中:

compile fileTree(include: ['*.jar'], dir: 'libs')

答案 1 :(得分:0)

上述错误意味着您正在使用重复的库 编译时间。

在gradle中添加库时始终只使用compile fileTree(include: ['*.jar'], dir: 'libs'),并且永远不会添加您在provided files('libs/MyJar.jar')中执行的同一个库的其他实例。