2016-06-05 3 views
1

Я пытаюсь добавить lib из esotericsoftware «Kryo» в проект libGDX на рабочем столе и Android-модуле. Я использую Intellij.Intellij/libGDX добавление lib kryo NoClassDefFoundError

Что я пробовал:

  • Добавление папки Kryo-3.0 для внешних библиотек
  • Добавление зависимостей в build.gradle ко всем модулям compile "com.esotericsoftware:kryo:3.0.3"
  • Запускаем Gradle
  • синхронизации проекта ,

То, что я получил после компиляции модуля Desktop:

Exception in thread "LWJGL Application" com.badlogic.gdx.utils.GdxRuntimeException: java.lang.NoClassDefFoundError: org/objenesis/strategy/InstantiatorStrategy 
at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:131) 
Caused by: java.lang.NoClassDefFoundError: org/objenesis/strategy/InstantiatorStrategy 
    at com.projectbeta.deepdarkness.screens.MenuScreen.show(MenuScreen.java:18) 
    at com.badlogic.gdx.Game.setScreen(Game.java:61) 
    at com.projectbeta.deepdarkness.DeepDarkness.create(DeepDarkness.java:16) 
    at com.badlogic.gdx.backends.lwjgl.LwjglApplication.mainLoop(LwjglApplication.java:147) 
    at com.badlogic.gdx.backends.lwjgl.LwjglApplication$1.run(LwjglApplication.java:124) 
Caused by: java.lang.ClassNotFoundException: org.objenesis.strategy.InstantiatorStrategy 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
    ... 5 more 

ответ

1

Просто протестирована и работает, вставьте его в корень gradle.build вашего проекта (не в некоторых из модуля конкретных) и повторной синхронизации.

project(":core") { 
    apply plugin: "java" 

    dependencies { 
     ...... 
     compile group: 'com.esotericsoftware', name: 'kryo', version: '3.0.3' 
    } 
} 

project(":desktop") { 
    apply plugin: "java" 

    dependencies { 
     compile project(":core") 
     ....... 
     compile group: 'com.esotericsoftware', name: 'kryo', version: '3.0.3' 

    } 
} 

project(":android") { 
    apply plugin: "android" 

    configurations { natives } 

    dependencies { 
     compile project(":core") 
     ...... 
     compile group: 'com.esotericsoftware', name: 'kryo', version: '3.0.3' 

    } 
} 
+0

В этом не проблема. Я не использую maven. В README от kryo есть информация, если ваш проект не использует maven add 2 libs (minLog и Objenesis). Также модуль android не должен компилировать эти библиотеки. Я только получил работу на андроиде, не компилируя библиотеки. –

+0

Но это не maven, а град. И ваше исключение в основном говорит о том, что одна из библиотек не разрешена во время выполнения приложения. Поскольку ваш проект libgdx использует gradle, я не вижу причин добавлять kryo libs вручную – Enigo

Смежные вопросы