Sto lavorando a un progetto Libgdx che utilizza l'Universal Tween Engine. Ho seguito tutti i passaggi di questa pagina: https://github.com/libgdx/libgdx/wiki/Universal-Tween-Engine per installare la libreria Universal Tween Engine nel mio progetto.Android Studio 'Aggiungi come libreria' mancante Per Universal Tween Engine su Libgdx
Dopo aver completato tutti questi passaggi, il progetto verrà creato e funzionerà correttamente (sia Android che desktop) sul mio PC portatile, e le animazioni provenienti dal motore tween funzionano perfettamente.
Tuttavia sul mio computer desktop ogni volta che provo a eseguire l'applicazione desktop si blocca con NoClassDefFoundException che viene lanciato sulla classe TweenAccessor che fa parte di Universal Tween Engine. L'applicazione viene compilata correttamente e posso fare clic sulla classe che Ctrl non riesce a trovare e apre il codice sorgente di quella classe, quindi so che almeno una parte dell'IDE sta trovando questa classe. Non ci sono errori di sottolineatura rossi su nessuna classe della libreria nell'editor del codice sorgente. È interessante notare che sul mio computer desktop I è possibile eseguire l'applicazione Android e non si blocca e le animazioni funzionano perfettamente. Solo la versione desktop non funzionerà.
Nel tentativo di risolvere questo problema ho eseguito più di una cosa che dice di passare alla vista 'Progetto' trovare i file jar, fare clic su di essi e scegliere Add as a Library
Ho dovuto farlo in passato su altri progetti e ha davvero funzionato per me.
Ma il mio problema è l'opzione Add as a Library
manca dal menu contestuale quando mi fate clic destro sul mio PC desktop:
Ho provato la pulizia del progetto. Ho persino completamente disinstallato Android Studio e scaricato una nuova copia e installato. Ottenete comunque gli stessi risultati dopo averlo fatto.
Che cosa determina se l'opzione "Aggiungi come libreria" verrà visualizzata nel menu di scelta rapida facendo clic con il pulsante destro del mouse su un file jar?
Cosa devo fare sul mio PC desktop per utilizzare correttamente il contenitore di libreria Universal Tween Engine?
MODIFICA: sezioni rilevanti di gradle.build.
project(":desktop") {
apply plugin: "java"
dependencies {
compile project(":core")
compile "com.badlogicgames.gdx:gdx-backend-lwjgl:$gdxVersion"
compile "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-desktop"
compile "com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-desktop"
compile fileTree(dir: '../libs', include: '*.jar') // This one is not listed but I added anyway
}
}
//...
project(":android") {
apply plugin: "android"
configurations { natives }
dependencies {
compile project(":core")
compile "com.badlogicgames.gdx:gdx-backend-android:$gdxVersion"
natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-armeabi"
natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-armeabi-v7a"
natives "com.badlogicgames.gdx:gdx-platform:$gdxVersion:natives-x86"
compile "com.badlogicgames.gdx:gdx-box2d:$gdxVersion"
natives "com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-armeabi"
natives "com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-armeabi-v7a"
natives "com.badlogicgames.gdx:gdx-box2d-platform:$gdxVersion:natives-x86"
compile fileTree(dir: '../libs', include: '*.jar')
}
}
//...
project(":core") {
apply plugin: "java"
dependencies {
compile "com.badlogicgames.gdx:gdx:$gdxVersion"
compile "com.badlogicgames.gdx:gdx-box2d:$gdxVersion"
compile fileTree(dir: '../libs', include: '*.jar')
}
}
mio progetto Struttura
project_root_dir/
android/
core/
desktop/
html/
ios/
libs/
tween-engine-api.jar
tween-engine-api-sources.jar
cosa fa il tuo file di build.gradle assomigliare per l'applicazione? Ha una riga simile a 'compile fileTree (dir: 'libs', include: ['* .jar'])'? Puoi anche aggiungere dipendenze attraverso la struttura del progetto (File -> Struttura del progetto, fare clic sul modulo, fare clic sulla scheda Dipendenze, fare clic sul segno più -> Dipendenza file) –
@VinayDandekar Ho aggiunto i bit relavent del mio gradle. costruire il file. Sì, includono quelle linee. Quando guardo la struttura del progetto e la scheda delle dipendenze, entrambi i file jar sono già elencati nei moduli 'core' e' android'. Ma non elencato sotto desktop. Se provo ad aggiungerli al modulo desktop non posso perché mi sta facendo sfogliare solo sotto la directory Desktop, ma sono su un livello all'interno della directory libs che si trova nella root del progetto. – FoamyGuy
Stai già includendo tutti i jar nella cartella/libs /. Non è necessario aggiungerlo perché è già stato aggiunto. 'compila fileTree (dir: '../libs', include: '* .jar')' – Knossos