2015-09-06 37 views
0

我刚将一个Android项目从IntelliJ/Maven安装程序迁移到Android Studio/Gradle安装程序。我可以清理它并构建它,但是当我尝试调试它时,出现以下错误。我已经在SO和其他地方看过一些答案,看起来这个问题可能是由各种问题引起的。我是一名Gradle初学者,但我确信我排除了其中的一些内容,例如重复依赖和破坏65K方法的限制(我的项目还没有那么大,而且我没有引用那么多/大型库)。如果有人能够指引我正确的方向,我会很感激。Android Studio/Gradle项目清理并构建,但无法进行调试

注意:我也不应该在lib目录中有2个jar文件。

Executing tasks: [:app:assembleDebug] 

Configuration on demand is an incubating feature. 
:app:preBuild UP-TO-DATE 
:app:preDebugBuild UP-TO-DATE 
:app:checkDebugManifest 
:app:preReleaseBuild UP-TO-DATE 
:app:prepareComAndroidSupportSupportV132301Library UP-TO-DATE 
:app:prepareComAndroidSupportSupportV42301Library UP-TO-DATE 
:app:prepareComGoogleAndroidGmsPlayServicesBase780Library UP-TO-DATE 
:app:prepareComGoogleAndroidGmsPlayServicesLocation780Library UP-TO-DATE 
:app:prepareComGoogleAndroidGmsPlayServicesMaps780Library UP-TO-DATE 
:app:prepareDebugDependencies 
:app:compileDebugAidl UP-TO-DATE 
:app:compileDebugRenderscript UP-TO-DATE 
:app:generateDebugBuildConfig UP-TO-DATE 
:app:generateDebugAssets UP-TO-DATE 
:app:mergeDebugAssets UP-TO-DATE 
:app:generateDebugResValues UP-TO-DATE 
:app:generateDebugResources UP-TO-DATE 
:app:mergeDebugResources UP-TO-DATE 
:app:processDebugManifest UP-TO-DATE 
:app:processDebugResources UP-TO-DATE 
:app:generateDebugSources UP-TO-DATE 
:app:processDebugJavaRes UP-TO-DATE 
:app:compileDebugJava UP-TO-DATE 
:app:compileDebugNdk UP-TO-DATE 
:app:compileDebugSources UP-TO-DATE 
:app:preDexDebug UP-TO-DATE 
:app:dexDebug 
AGPBI: {"kind":"SIMPLE","text":"UNEXPECTED TOP-LEVEL EXCEPTION:","position":{},"original":"UNEXPECTED TOP-LEVEL EXCEPTION:"} 
AGPBI: {"kind":"SIMPLE","text":"com.android.dex.DexException: Multiple dex files define Lke/co/hoji/BuildConfig;","position":{},"original":"com.android.dex.DexException: Multiple dex files define Lke/co/hoji/BuildConfig;"} 
AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:596)","position":{},"original":"\tat com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:596)"} 
AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:554)","position":{},"original":"\tat com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:554)"} 
AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:535)","position":{},"original":"\tat com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:535)"} 
AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:171)","position":{},"original":"\tat com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:171)"} 
AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.merge.DexMerger.merge(DexMerger.java:189)","position":{},"original":"\tat com.android.dx.merge.DexMerger.merge(DexMerger.java:189)"} 
AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:454)","position":{},"original":"\tat com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:454)"} 
AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.command.dexer.Main.runMonoDex(Main.java:303)","position":{},"original":"\tat com.android.dx.command.dexer.Main.runMonoDex(Main.java:303)"} 
AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.command.dexer.Main.run(Main.java:246)","position":{},"original":"\tat com.android.dx.command.dexer.Main.run(Main.java:246)"} 
AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.command.dexer.Main.main(Main.java:215)","position":{},"original":"\tat com.android.dx.command.dexer.Main.main(Main.java:215)"} 
AGPBI: {"kind":"SIMPLE","text":"\tat com.android.dx.command.Main.main(Main.java:106)","position":{},"original":"\tat com.android.dx.command.Main.main(Main.java:106)"} 


FAILED 

FAILURE: Build failed with an exception. 

* What went wrong: 
Execution failed for task ':app:dexDebug'. 
> com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/usr/lib/jvm/java-7-oracle/bin/java'' finished with non-zero exit value 2 

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

BUILD FAILED 

Total time: 3.79 secs 

这是我的构建文件。

apply plugin: 'com.android.application' 

android { 

    compileSdkVersion 21 
    buildToolsVersion "22.0.1" 

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

dependencies { 
    compile fileTree(include: ['*.jar'], dir: 'libs') 
    compile 'com.android.support:support-v13:23.0.1' 
    compile 'ch.acra:acra:4.6.2' 
    compile 'com.google.code.gson:gson:2.3.1' 
    compile 'com.google.android.gms:play-services-location:7.8.0' 
    compile 'com.readystatesoftware.sqliteasset:sqliteassethelper:2.0.1' 
} 

回答

1

我发现了这个问题。因为它是一个Android库,所以libs目录中的一个文件应该被打包为“aar”而不是“jar”文件。我这样做,并添加行compile 'ke.co.hoji:file-name:[email protected]'到构建文件,并解决了这个问题。

1

主要问题是此行

Multiple dex files define BuildConfig

首先尝试从上方位置或从libs

此错误的发生是因为当存在两个相同的库的去除AppCompatLibrary在存在单个项目依赖关系。