Ошибка компиляции GWT - PullRequest
       2

Ошибка компиляции GWT

3 голосов
/ 08 марта 2012

что может быть причиной этого стека ошибок во время компиляции ?? Я использую gwt 2+ с затмением 3.7

[ОШИБКА] Неожиданная внутренняя ошибка компилятора `java.lang.ArrayIndexOutOfBoundsException: 986507 в com.google.gwt.dev.asm.ClassReader.readUnsignedShort (ClassReader.java:1850) на com.google.gwt.dev.asm.ClassReader.accept (ClassReader.java:484) на com.google.gwt.dev.asm.ClassReader.accept (ClassReader.java:420) в com.google.gwt.dev.javac.TypeOracleMediator $ TypeData.getCollectClassData (TypeOracleMediator.java:147) в com.google.gwt.dev.javac.TypeOracleMediator.addNewTypes (TypeOracleMediator.java:390) в com.google.gwt.dev.javac.TypeOracleMediatorFromSource.addNewUnits (TypeOracleMediatorFromSource.java:52) в com.google.gwt.dev.javac.CompilationState.assimilateUnits (CompilationState.java:164) в com.google.gwt.dev.javac.CompilationState. (CompilationState.java:82) в com.google.gwt.dev.javac.CompilationStateBuilder.doBuildFrom (CompilationStateBuilder.java:450) в com.google.gwt.dev.javac.CompilationStateBuilder.buildFrom (CompilationStateBuilder.java:370) в com.google.gwt.dev.cfg.ModuleDef.getCompilationState (ModuleDef.java:360) на com.google.gwt.dev.Precompile.precompile (Precompile.java:252) на com.google.gwt.dev.Precompile.precompile (Precompile.java:233) в com.google.gwt.dev.Precompile.precompile (Precompile.java:145) в com.google.gwt.dev.Compiler.run (Compiler.java:232) в com.google.gwt.dev.Compiler.run (Compiler.java:198) в com.google.gwt.dev.Compiler $ 1.run (Compiler.java:170) в com.google.gwt.dev.CompileTaskRunner.doRun (CompileTaskRunner.java:88) в com.google.gwt.dev.CompileTaskRunner.runWithAppropriateLogger (CompileTaskRunner.java:82) на com.google.gwt.dev.Compiler.main (Compiler.java:177) Завершение работы Исключение потока PersistentUnitCache в потоке "UnitWriteThread" java.lang.NullPointerException в com.google.gwt.dev.util.DiskCache.transferToStream (DiskCache.java:183) в com.google.gwt.dev.javac.CompiledClass.writeObject (CompiledClass.java:163) at sun.reflect.GeneratedMethodAccessor22.invoke (неизвестный источник) в sun.reflect.DelegatingMethodAccessorImpl.invoke (неизвестный источник) в java.lang.reflect.Method.invoke (неизвестный источник) в java.io.ObjectStreamClass.invokeWriteObject (неизвестный источник) в java.io.ObjectOutputStream.writeSerialData (неизвестный источник) в java.io.ObjectOutputStream.writeOrdinaryObject (неизвестный источник) в java.io.ObjectOutputStream.writeObject0 (неизвестный источник) в java.io.ObjectOutputStream.writeArray (Неизвестный источник) в java.io.ObjectOutputStream.writeObject0 (неизвестный источник) в java.io.ObjectOutputStream.defaultWriteFields (Неизвестный источник) в java.io.ObjectOutputStream.writeSerialData (неизвестный источник) в java.io.ObjectOutputStream.writeOrdinaryObject (неизвестный источник) в java.io.ObjectOutputStream.writeObject0 (неизвестный источник) в java.io.ObjectOutputStream.defaultWriteFields (Неизвестный источник) в java.io.ObjectOutputStream.writeSerialData (неизвестный источник) в java.io.ObjectOutputStream.writeOrdinaryObject (неизвестный источник) в java.io.ObjectOutputStream.writeObject0 (неизвестный источник) в java.io.ObjectOutputStream.writeObject (неизвестный источник) в com.google.gwt.dev.javac.PersistentUnitCache $ UnitWriter.run (PersistentUnitCache.java:226)

Ответы [ 4 ]

0 голосов
/ 17 декабря 2015

У меня была очень похожая проблема с использованием eclipse luna + GWT 2.7.0 + Java 1.7 + плагин Maven 3.1.1. Я пытался скомпилировать GWT в супер-dev-режиме, но всегда получал исключение java.lang.ArrayIndexOutOfBoundsException. Я думаю, что это происходит потому, что компилятор пытается скомпилировать классы, которые вообще не должны быть скомпилированы (например, классифицированы как тестовые), но я не уверен.

Шаги, которые я предпринял для решения этой проблемы:

  1. Очистить целевую папку
  2. Удаление тестовых папок из сборки развертывания (щелкните правой кнопкой мыши проект в eclipse -> «Deployment Assembly» -> выберите тестовые папки и нажмите «Удалить»
  3. Компиляция с использованием плагина GWT : Выберите проект в eclipse -> нажмите кнопку «GDT Pulldown» (с установленным плагином Google) -> «Проект GWT Compile» -> Выберите модуль, который вы хотите скомпилируйте и нажмите «Компилировать».

Последний шаг на самом деле потерпел неудачу для меня, поэтому я не уверен, помог ли это или нет.

Наконец, я снова скомпилировал и ошибка исчезла.

Я надеюсь, что кто-то найдет это полезным.

0 голосов
/ 08 марта 2012

Определенно ошибка компилятора.Если посмотреть на asm-код - переменная массива вне границ: Нестандартный класс для анализа.Это поле предназначено для подклассов атрибутов и, как правило, не требуется генераторам классов или адаптерам.

Есть ли у вас несовпадающие файлы bin / lib или исполняемый файл?Можете ли вы локализовать нарушающий код для анонимного или внутреннего класса?

0 голосов
/ 11 сентября 2013

Попробуйте удалить папку gwt-unitCache и снова запустите gwt-compile.Это исправило это для меня.

0 голосов
/ 08 марта 2012

Не могу сказать точно, без вашего кода, посмотрите, во время перезаписи, откуда именно эта ошибка, я думаю, у вас есть какой-то массив, и вы пытаетесь получить доступ к индексу из этого массива, которого на самом деле нет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...