Я создал проект java-дизайна в IntelliJ для обработки записи и чтения объектов JSON из файла. Он содержит также 2 класса исключений для костюмов. Мне нужно это для моего проекта игры libgdx для Android в настоящее время работает.Библиотека библиотеки костюмов не в состоянии разрешить класс исключений
У меня возникла следующая ошибка, когда я получаю ожидаемое исключение в коде.
unable to resolve exception class 1498 (Lparohylib/jsonfile/input/JSONFileReaderException;)
Я просмотрел несколько тем и советов по этой проблеме, но пока не смог найти решение. Я думаю, что я мог бы исправить это, создав классы моего класса в моем проекте, но это не то, что я хочу сделать, если нет чистого способа импортировать библиотеку java-библиотеки (3rd party lib).
То, что я пытался до сих пор:
1) Создано Lib папки в основном модуле, копируется файл банку и добавил, что корыто Project структурообразующих>> Dependecies core-.
2) правой кнопкой мыши по файлу банку и нажал Добавить в библиотеку
3) сделать то же самое для андроид модуля, но я получил некоторые исключения ошибок синтаксического анализа после Gradle синхронизации
Вот полный лог:
04-16 22:02:28.808 15451-15480/parohyapp.mario W/dalvikvm: VFY: unable to resolve exception class 1498 (Lparohylib/jsonfile/input/JSONFileReaderException;)
04-16 22:02:28.808 15451-15480/parohyapp.mario W/dalvikvm: VFY: unable to find exception handler at addr 0xa
04-16 22:02:28.808 15451-15480/parohyapp.mario W/dalvikvm: VFY: rejected Lparohyapp/mario/tools/data/GameProgress;.<init>()V
04-16 22:02:28.808 15451-15480/parohyapp.mario W/dalvikvm: VFY: rejecting opcode 0x0d at 0x000a
04-16 22:02:28.808 15451-15480/parohyapp.mario W/dalvikvm: VFY: rejected Lparohyapp/mario/tools/data/GameProgress;.<init>()V
04-16 22:02:28.808 15451-15480/parohyapp.mario W/dalvikvm: Verifier rejected class Lparohyapp/mario/tools/data/GameProgress;
04-16 22:02:28.847 15451-15480/parohyapp.mario W/dalvikvm: threadid=11: thread exiting with uncaught exception (group=0x40bd11f8)
04-16 22:02:28.855 15451-15480/parohyapp.mario E/AndroidRuntime: FATAL EXCEPTION: GLThread 26034 java.lang.VerifyError: parohyapp/mario/tools/data/GameProgress
at parohyapp.mario.GameMaster.<init>(GameMaster.java:57)
at parohyapp.mario.screens.PlayScreen.<init>(PlayScreen.java:44)
at parohyapp.mario.screens.ScreenManager.getScreen(ScreenManager.java:36)
at parohyapp.mario.screens.ScreenManager.setCurrentScreen(ScreenManager.java:28)
at parohyapp.mario.screens.MenuScreen.changeScreen(MenuScreen.java:112)
at parohyapp.mario.screens.MenuScreen.access$000(MenuScreen.java:27)
at parohyapp.mario.screens.MenuScreen$1.changed(MenuScreen.java:99)
at com.badlogic.gdx.scenes.scene2d.utils.ChangeListener.handle(ChangeListener.java:28)
at com.badlogic.gdx.scenes.scene2d.Actor.notify(Actor.java:181)
at com.badlogic.gdx.scenes.scene2d.Actor.fire(Actor.java:146)
at com.badlogic.gdx.scenes.scene2d.ui.Button.setChecked(Button.java:123)
at com.badlogic.gdx.scenes.scene2d.ui.Button$1.clicked(Button.java:91)
at com.badlogic.gdx.scenes.scene2d.utils.ClickListener.touchUp(ClickListener.java:89)
at com.badlogic.gdx.scenes.scene2d.InputListener.handle(InputListener.java:58)
at com.badlogic.gdx.scenes.scene2d.Stage.touchUp(Stage.java:353)
at com.badlogic.gdx.backends.android.AndroidInput.processEvents(AndroidInput.java:379)
at com.badlogic.gdx.backends.android.AndroidGraphics.onDrawFrame(AndroidGraphics.java:472)
at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1462)
at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1216)
4) Отменены все Gradle изменения и добавили его корыта структурообразующих>> Dependecies core-получил следующее исключение:
FATAL EXCEPTION: GLThread 26106 java.lang.NoClassDefFoundError: parohylib.jsonfile.input.JSONFileReader
at parohyapp.mario.tools.data.GameProgress.loadData(GameProgress.java:94)
at parohyapp.mario.tools.data.GameProgress.<init>(GameProgress.java:31)
at parohyapp.mario.GameMaster.<init>(GameMaster.java:57)
at parohyapp.mario.screens.PlayScreen.<init>(PlayScreen.java:44)
at parohyapp.mario.screens.ScreenManager.getScreen(ScreenManager.java:36)
at parohyapp.mario.screens.ScreenManager.setCurrentScreen(ScreenManager.java:28)
at parohyapp.mario.screens.MenuScreen.changeScreen(MenuScreen.java:112)
at parohyapp.mario.screens.MenuScreen.access$000(MenuScreen.java:27)
at parohyapp.mario.screens.MenuScreen$1.changed(MenuScreen.java:99)
at com.badlogic.gdx.scenes.scene2d.utils.ChangeListener.handle(ChangeListener.java:28)
at com.badlogic.gdx.scenes.scene2d.Actor.notify(Actor.java:181)
at com.badlogic.gdx.scenes.scene2d.Actor.fire(Actor.java:146)
at com.badlogic.gdx.scenes.scene2d.ui.Button.setChecked(Button.java:123)
at com.badlogic.gdx.scenes.scene2d.ui.Button$1.clicked(Button.java:91)
at com.badlogic.gdx.scenes.scene2d.utils.ClickListener.touchUp(ClickListener.java:89)
at com.badlogic.gdx.scenes.scene2d.InputListener.handle(InputListener.java:58)
at com.badlogic.gdx.scenes.scene2d.Stage.touchUp(Stage.java:353)
at com.badlogic.gdx.backends.android.AndroidInput.processEvents(AndroidInput.java:379)
at com.badlogic.gdx.backends.android.AndroidGraphics.onDrawFrame(AndroidGraphics.java:472)
at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1462)
at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1216)
Я могу предоставить еще несколько источников, просто спросите, что вам нужно, не уверен, что разместить здесь, кроме того, что я уже сделал.
EDIT-1: 5) Создал новый модуль из файла jar и добавил его к сборке graddle. Получили следующее сообщение об ошибке:
Error:com.android.dx.cf.iface.ParseException: bad class file magic (cafebabe) or version (0034.0000)
at com.android.dx.cf.direct.DirectClassFile.parse0(DirectClassFile.java:472)
at com.android.dx.cf.direct.DirectClassFile.parse(DirectClassFile.java:406)
at com.android.dx.cf.direct.DirectClassFile.parseToInterfacesIfNecessary(DirectClassFile.java:388)
at com.android.dx.cf.direct.DirectClassFile.getMagic(DirectClassFile.java:251)
at com.android.dx.command.dexer.Main.parseClass(Main.java:764)
at com.android.dx.command.dexer.Main.access$1500(Main.java:85)
at com.android.dx.command.dexer.Main$ClassParserTask.call(Main.java:1684)
at com.android.dx.command.dexer.Main.processClass(Main.java:749)
Error:Execution failed for task ':android:transformClassesWithDexForDebug'.
> com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files\Java\jdk1.8.0_66\bin\java.exe'' finished with non-zero exit value 1
Добавили ли вы 'compile fileTree' путь к вашей банке в gradle.build? – Enigo
Ehhh Я думаю, да .. но пример кода, что вы имеете в виду, буквально будет замечательным. Я пытался скомпилировать файл с файлом, а не только с compile_files, но он всегда выбрасывает NoClassDefFoundError. – parohy
просто любопытно, вы попробовали решение из моего ответа? – Enigo