2015-08-24 42 views
1

我想在我的Android Studio项目中安装RoboGuice作为依赖项。一旦我尝试运行该项目(甚至在我添加任何新代码之前),我就会崩溃并输出:添加RoboGuice作为依赖时出错

信息:Gradle任务[:app:assembleDebug] :app:preBuild UP-TO- DATE :应用:preDebugBuild UP-TO-DATE :应用程序:checkDebugManifest :应用:preReleaseBuild UP-TO-DATE :应用:prepareComAndroidSupportAppcompatV72300Library UP-TO-DATE :应用:prepareComAndroidSupportSupportV42300Library UP-TO-DATE :应用程序: prepareComMcxiaokeVolleyLibraryAar100Library UP-TO-DATE :app:prepareDebugDependencies :app:compileDebugAidl UP-TO-DATE :app:compileDebugRenderscript UP-TO-DATE :应用程序:generateDebugBuildConfig UP-TO-DATE :应用程序:generateDebugAssets UP-TO-DATE :应用程序:mergeDebugAssets UP-TO-DATE :应用程序:generateDebugResValues UP-TO-DATE :应用程序:generateDebugResources UP-TO-DATE :应用程序:mergeDebugResources UP-TO-DATE :应用程序:processDebugManifest UP-TO-DATE :应用程序:processDebugResources UP-TO-DATE :应用程序:generateDebugSources UP-TO-DATE :应用程序:processDebugJavaRes UP-TO-DATE :app:compileDebugJava 注意:某些输入文件使用或覆盖弃用的API。 注意:使用-Xlint:deprecation重新编译以获取详细信息。 :应用:compileDebugNdk UP-TO-DATE :应用程序:compileDebugSources :应用程序:preDexDebug :应用:dexDebug 意外顶级例外: com.android.dex.DexException:多DEX文件定义Ljavax /注入/供应商; 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.java:106) E rror:执行任务':app:dexDebug'失败。

com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/Library/Java/JavaVirtualMachines/jdk1.7.0_21.jdk/Contents/Home/bin/java'' finished with non-zero exit value 2 Information:BUILD FAILED Information:Total time: 10.274 secs Information:1 error Information:0 warnings Information:See complete output in console

这里是我的gradle这个文件:

的build.gradle(模块) 应用插件: 'com.android.application'

android { 
    compileSdkVersion 23 
    buildToolsVersion "21.1.2" 

    defaultConfig { 
     applicationId "com.mysite.myapp" 
     minSdkVersion 15 
     targetSdkVersion 23 
     versionCode 1 
     versionName "1.0" 
    } 
    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
} 

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    compile 'com.android.support:appcompat-v7:23.0.0' 
    compile 'com.google.code.gson:gson:2.3.1' 
    compile 'com.mcxiaoke.volley:library-aar:1.0.0' 
    compile 'javax.inject:javax.inject:1' 
    compile 'org.roboguice:roboguice:3.+' 
} 

的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' 

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

allprojects { 
    repositories { 
     jcenter() 
     mavenCentral() 
    } 
} 

我完全困惑。任何人都可以看到我做错了什么?谢谢。

+1

无论如何,你是否已将'dependencies'中指定的任何库放在libs文件夹中?如果可能,请张贴您的libs文件夹内容的屏幕截图。 –

+0

为什么你要为你的依赖添加编译'javax.inject:javax.inject:1'?如果在使用gradle时不需要使用imho,Roboguice应该解决对它自己的依赖。 – FWeigl

+0

@Ascorbin - 我一直在玩依赖注入的各种尝试。这是从一个较早的方法遗留下来的,但似乎是重复的来源。如果你提出它作为答案,我会接受它。谢谢! – Alex

回答

1

Roboguice会带来它的“自己” javax.inject作为依赖,所以当你宣布compile 'javax.inject:javax.inject:1'有导致

Multiple dex files define Ljavax/inject/Provider

其中2只是删除了javax.inject依赖。