dex не работает при сборке муравьев для Scala на Android - PullRequest
1 голос
/ 24 октября 2011

ПРИМЕЧАНИЕ: с небольшой модификацией проекта я смог построить заново, используя это: https://github.com/imsizon/ant-android-scala. Для тех, у кого возникли проблемы с сборкой Scala на Android, это хорошее начало.

Я собирал scala в 12-й редакции Android SDK, используя ant (следуя инструкциям здесь: http://www.assembla.com/wiki/show/scala-ide/Developing_for_Android.) Все шло хорошо, пока я не обновился до последней версии Android SDK (ревизия 14.), теперь я получаю следующее выход:

Buildfile: /Users/matt/Documents/workspace/ScalaEclipseAndroid/build.xml
-set-mode-check:
-set-debug-files:
-set-debug-mode:
-debug-obfuscation-check:
-setup:
     [echo] Gathering info for ScalaEclipseAndroid...
    [setup] Android SDK Tools Revision 14
    [setup] Project Target: Google APIs
    [setup] Vendor: Google Inc.
    [setup] Platform Version: 2.1
    [setup] API level: 7
    [setup] ------------------
    [setup] Resolving library dependencies:
    [setup] No library dependencies.
    [setup] ------------------
    [setup] WARNING: Attribute minSdkVersion in AndroidManifest.xml (4) is lower than the project target API level (7)
-build-setup:
     [echo] Creating output directories if needed...
-pre-build:
-code-gen:
     [echo] ----------
     [echo] Handling aidl files...
     [aidl] No aidl files to compile.
     [echo] ----------
     [echo] Handling RenderScript files...
[renderscript] No renderscript files to compile.
     [echo] ----------
     [echo] Handling Resources...
     [aapt] No changed resources. R.java and Manifest.java untouched.
-pre-compile:
-compile:
   [scalac] Compiling 0 scala and 1 java source files to /Users/matt/Documents/workspace/ScalaEclipseAndroid/bin/classes
    [javac] /Development/android-sdk-mac_x86/tools/ant/build.xml:615: warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds
   [scalac] Compiling 0 scala and 1 java source files to /Users/matt/Documents/workspace/ScalaEclipseAndroid/bin/classes
-post-compile:
-obfuscate:
-dex:
      [dex] Converting compiled files and external libraries into /Users/matt/Documents/workspace/ScalaEclipseAndroid/bin/classes.dex...
       [dx] UNEXPECTED TOP-LEVEL ERROR:
       [dx] java.lang.AssertionError
       [dx]     at com.android.dx.dex.code.OutputFinisher.findExpandedOpcodeForInsn(OutputFinisher.java:525)
       [dx]     at com.android.dx.dex.code.OutputFinisher.calculateReservedCount(OutputFinisher.java:466)
       [dx]     at com.android.dx.dex.code.OutputFinisher.reserveRegisters(OutputFinisher.java:402)
       [dx]     at com.android.dx.dex.code.OutputFinisher.finishProcessingAndGetList(OutputFinisher.java:358)
       [dx]     at com.android.dx.dex.code.DalvCode.finishProcessingIfNecessary(DalvCode.java:108)
       [dx]     at com.android.dx.dex.code.DalvCode.getInsns(DalvCode.java:185)
       [dx]     at com.android.dx.dex.file.CodeItem.place0(CodeItem.java:223)
       [dx]     at com.android.dx.dex.file.OffsettedItem.place(OffsettedItem.java:242)
       [dx]     at com.android.dx.dex.file.MixedItemSection.placeItems(MixedItemSection.java:312)
       [dx]     at com.android.dx.dex.file.DexFile.toDex0(DexFile.java:543)
       [dx]     at com.android.dx.dex.file.DexFile.toDex(DexFile.java:216)
       [dx]     at com.android.dx.command.dexer.Main.writeDex(Main.java:574)
       [dx]     at com.android.dx.command.dexer.Main.run(Main.java:218)
       [dx]     at com.android.dx.command.dexer.Main.main(Main.java:174)
       [dx]     at com.android.dx.command.Main.main(Main.java:95)

BUILD FAILED
/Development/android-sdk-mac_x86/tools/ant/build.xml:772: The following error occurred while executing this line:
/Development/android-sdk-mac_x86/tools/ant/build.xml:774: The following error occurred while executing this line:
/Development/android-sdk-mac_x86/tools/ant/build.xml:786: The following error occurred while executing this line:
/Development/android-sdk-mac_x86/tools/ant/build.xml:248: null returned: 3

Сама ошибка не содержит много информации, и я не лучший в Ant. Если кто-то может пролить свет на эту проблему, это будет очень ценно.

Ответы [ 2 ]

2 голосов
/ 19 ноября 2011

Возможно, вы используете ограничение в 65 535 на общее количество методов в файле dex: выпуск Android 20814 .В этом случае может помочь сокращение и оптимизация скомпилированного кода с помощью ProGuard, как это предлагается на упомянутых вами страницах.

0 голосов
/ 02 февраля 2012

Из Вопроса: С небольшой модификацией проекта я смог собрать заново, используя это: https://github.com/imsizon/ant-android-scala. Для тех, у кого есть проблемы со сборкой Scala на Android, это хорошее начало.

...