0

Android Studio를 사용 중이며 aws-java-sdk를 가져 와서 dynamodb 라이브러리를 가져 오려고합니다. 그러나이 종속성을 추가하면 GC 오버 헤드 한계를 초과하여 빌드가 실패하게됩니다. 무엇이 잘못 되었습니까?Android Studio : aws-java-sdk를 추가하면 GC 오버 헤드 한도가 초과되었습니다.

아마도 aws-java-sdk는 여기에서 사용하기에 적합하지 않습니까?

내 Gradle을 파일 :

apply plugin: 'android' 

android { 
    compileSdkVersion 19 
    buildToolsVersion "19.0.3" 

    defaultConfig { 
     minSdkVersion 16 
     targetSdkVersion 19 
     versionCode 1 
     versionName "1.0" 
    } 

    packagingOptions { 
     exclude 'META-INF/DEPENDENCIES' 
     exclude 'META-INF/NOTICE' 
     exclude 'META-INF/LICENSE' 
     exclude 'META-INF/LICENSE.txt' 
     exclude 'META-INF/NOTICE.txt' 
    } 

    compileOptions { 
     sourceCompatibility JavaVersion.VERSION_1_7 
     targetCompatibility JavaVersion.VERSION_1_7 
    } 
    buildTypes { 
     release { 
      runProguard false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' 
     } 
    } 
} 

dependencies { 
    compile 'com.android.support:appcompat-v7:+' 
    compile 'com.android.support:support-v4:19.0.0' 
    compile 'org.apache.commons:commons-lang3:3.3' 
    compile 'com.google.guava:guava:16.0.1' 
    compile 'joda-time:joda-time:2.3' 
    compile 'com.amazonaws:aws-java-sdk:+' 
    compile fileTree(dir: 'libs', include: ['*.jar']) 

    compile "org.mockito:mockito-all:1.9.5" 
} 

그리고 이것은 스택 곡 :

Information:Gradle tasks [:backagen:assembleDebug] 
Information:UNEXPECTED TOP-LEVEL ERROR: 
Information:java.lang.OutOfMemoryError: GC overhead limit exceeded 
Information: at com.android.dx.util.FixedSizeList.<init>(FixedSizeList.java:38) 
Information: at com.android.dx.rop.code.RegisterSpecList.<init>(RegisterSpecList.java:102) 
Information: at com.android.dx.cf.code.RopperMachine.getSources(RopperMachine.java:668) 
Information: at com.android.dx.cf.code.RopperMachine.run(RopperMachine.java:288) 
Information: at com.android.dx.cf.code.Simulator$SimVisitor.visitConstant(Simulator.java:691) 
Information: at com.android.dx.cf.code.BytecodeArray.parseInstruction(BytecodeArray.java:772) 
Information: at com.android.dx.cf.code.Simulator.simulate(Simulator.java:94) 
Information: at com.android.dx.cf.code.Ropper.processBlock(Ropper.java:698) 
Information: at com.android.dx.cf.code.Ropper.doit(Ropper.java:653) 
Information: at com.android.dx.cf.code.Ropper.convert(Ropper.java:266) 
Information: at com.android.dx.dex.cf.CfTranslator.processMethods(CfTranslator.java:282) 
Information: at com.android.dx.dex.cf.CfTranslator.translate0(CfTranslator.java:139) 
Information: at com.android.dx.dex.cf.CfTranslator.translate(CfTranslator.java:94) 
Information: at com.android.dx.command.dexer.Main.processClass(Main.java:682) 
Information: at com.android.dx.command.dexer.Main.processFileBytes(Main.java:634) 
Information: at com.android.dx.command.dexer.Main.access$600(Main.java:78) 
Information: at com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:572) 
Information: at com.android.dx.cf.direct.ClassPathOpener.processArchive(ClassPathOpener.java:284) 
Information: at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:166) 
Information: at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:144) 
Information: at com.android.dx.command.dexer.Main.processOne(Main.java:596) 
Information: at com.android.dx.command.dexer.Main.processAllFiles(Main.java:498) 
Information: at com.android.dx.command.dexer.Main.runMonoDex(Main.java:264) 
Information: at com.android.dx.command.dexer.Main.run(Main.java:230) 
Information: at com.android.dx.command.dexer.Main.main(Main.java:199) 
Information: at com.android.dx.command.Main.main(Main.java:103) 
Information:1 error 
Information:0 warnings 
Information:See complete output in console 
Error:Execution failed for task ':backagen:preDexDebug'. 
> com.android.ide.common.internal.LoggedErrorException: Failed to run command: 
    /Applications/Android Studio.app/sdk/build-tools/android-4.4.2/dx --dex --output /Users/samwong/AndroidStudioProjects/BackAgen/backagen/build/pre-dexed/debug/aws-java-sdk-1.7.5-131e66c92e708a5c19c92b04dbc3bf0a71acb816.jar /Users/samwong/.gradle/caches/modules-2/files-2.1/com.amazonaws/aws-java-sdk/1.7.5/650f07e69b071cbf41c32d4ea35fd6bbba8e6793/aws-java-sdk-1.7.5.jar 
    Error Code: 
    3 
    Output: 
    UNEXPECTED TOP-LEVEL ERROR: 
    java.lang.OutOfMemoryError: GC overhead limit exceeded 
     at com.android.dx.util.FixedSizeList.<init>(FixedSizeList.java:38) 
     at com.android.dx.rop.code.RegisterSpecList.<init>(RegisterSpecList.java:102) 
     at com.android.dx.cf.code.RopperMachine.getSources(RopperMachine.java:668) 
     at com.android.dx.cf.code.RopperMachine.run(RopperMachine.java:288) 
     at com.android.dx.cf.code.Simulator$SimVisitor.visitConstant(Simulator.java:691) 
     at com.android.dx.cf.code.BytecodeArray.parseInstruction(BytecodeArray.java:772) 
     at com.android.dx.cf.code.Simulator.simulate(Simulator.java:94) 
     at com.android.dx.cf.code.Ropper.processBlock(Ropper.java:698) 
     at com.android.dx.cf.code.Ropper.doit(Ropper.java:653) 
     at com.android.dx.cf.code.Ropper.convert(Ropper.java:266) 
     at com.android.dx.dex.cf.CfTranslator.processMethods(CfTranslator.java:282) 
     at com.android.dx.dex.cf.CfTranslator.translate0(CfTranslator.java:139) 
     at com.android.dx.dex.cf.CfTranslator.translate(CfTranslator.java:94) 
     at com.android.dx.command.dexer.Main.processClass(Main.java:682) 
     at com.android.dx.command.dexer.Main.processFileBytes(Main.java:634) 
     at com.android.dx.command.dexer.Main.access$600(Main.java:78) 
     at com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:572) 
     at com.android.dx.cf.direct.ClassPathOpener.processArchive(ClassPathOpener.java:284) 
     at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:166) 
     at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:144) 
     at com.android.dx.command.dexer.Main.processOne(Main.java:596) 
     at com.android.dx.command.dexer.Main.processAllFiles(Main.java:498) 
     at com.android.dx.command.dexer.Main.runMonoDex(Main.java:264) 
     at com.android.dx.command.dexer.Main.run(Main.java:230) 
     at com.android.dx.command.dexer.Main.main(Main.java:199) 
     at com.android.dx.command.Main.main(Main.java:103) 

답변

0

안드로이드 개발에있어 별도의 안드로이드 SDK가 있습니다.

이 현재 받는다는에없는, 그래서 당신은/libs와 내부

을 필요한 항아리를 한 후, http://aws.amazon.com/sdkforandroid/을 형성 다운로드 넣어해야하지만 그건 모두가 아니다. 모든 jar 파일을 임포트하면, 실행시에 여러 개의 dex 파일 정의 오류가 발생합니다. 어떤 병이 필요한지 알아 보려면 http://docs.aws.amazon.com/mobile/sdkforandroid/gsg/Welcome.html

+0

나는 이것을 시도했지만 여전히 덱스 한도에 도달했습니다. 핵심 단지에는 22K 방법이 있습니다. – dannyroa

+2

'aws-android-sdk'가 최근에 Maven Central에 추가되었습니다. [여기] (http://search.maven.org/#search%7Cga%7C1%7Caws-android-sdk) 목록을 찾을 수 있습니다. – anon