Our Android ClassLoaderUtil, used to daisy chain dex ClassLoader using GlueGen, Joal and Jogl APK files, doesn't work on Android 5.* (lollipop) with the art runtime. See below adb log. Seems like this is a known issue https://code.google.com/p/android/issues/detail?id=82122 Workaround mentioned is to copy the APK file(s) to a temp directory .. +++ D/JogampClassLoader( 5162): jogamp dexPath: /data/data/jogamp.android.launcher/app_temp/jogamp/file_cache/jln-793896077/jln-541934443/jogampDex D/JogampClassLoader( 5162): S: userPackageNames: [com.jogamp.common, javax.media.opengl]; Launcher: appDir /data/data, dataDir: /data/data/jogamp.android.launcher, nativeLibraryDir /data/app/jogamp.android.launcher-1/lib/arm W/System.err( 5162): TempFileCache: *** Reaper: deleteOldTempDirs in /data/data/jogamp.android.launcher/app_temp/jogamp/file_cache W/System.err( 5162): TempFileCache: removeAll(/data/data/jogamp.android.launcher/app_temp/jogamp/file_cache/jln2053167485) W/System.err( 5162): TempFileCache: removeAll(/data/data/jogamp.android.launcher/app_temp/jogamp/file_cache/jln2053167485/jln-793896077.tmp) W/System.err( 5162): TempFileCache: removeAll(/data/data/jogamp.android.launcher/app_temp/jogamp/file_cache/jln2053167485/jln-793896077) W/System.err( 5162): TempFileCache: removeAll(/data/data/jogamp.android.launcher/app_temp/jogamp/file_cache/jln2053167485/jln-793896077/jogampDex) W/System.err( 5162): TempFileCache: removeAll(/data/data/jogamp.android.launcher/app_temp/jogamp/file_cache/jln2053167485/jln-793896077/jogampDex/base.dex) D/JogampClassLoader( 5162): S: userPackage: com.jogamp.common, apk /data/app/com.jogamp.common-1/base.apk, appDir /data/data, dataDir: /data/data/com.jogamp.common, nativeLibraryDir /data/app/com.jogamp.common-1/lib/arm D/JogampClassLoader( 5162): APK[0] found: <com.jogamp.common> -> </data/app/com.jogamp.common-1/base.apk> D/JogampClassLoader( 5162): APK[0] apks: </data/app/com.jogamp.common-1/base.apk> D/JogampClassLoader( 5162): APK[0] libs: </data/app/com.jogamp.common-1/lib/arm/> D/JogampClassLoader( 5162): S: userPackage: javax.media.opengl, apk /data/app/javax.media.opengl-1/base.apk, appDir /data/data, dataDir: /data/data/javax.media.opengl, nativeLibraryDir /data/app/javax.media.opengl-1/lib/arm D/JogampClassLoader( 5162): APK[1] found: <javax.media.opengl> -> </data/app/javax.media.opengl-1/base.apk> D/JogampClassLoader( 5162): APK[1] apks: </data/app/com.jogamp.common-1/base.apk:/data/app/javax.media.opengl-1/base.apk> D/JogampClassLoader( 5162): APK[1] libs: </data/app/com.jogamp.common-1/lib/arm/:/data/app/javax.media.opengl-1/lib/arm/> I/dex2oat ( 5178): /system/bin/dex2oat --runtime-arg -classpath --runtime-arg --instruction-set=arm --instruction-set-features=div --runtime-arg -Xrelocate --boot-image=/system/framework/boot.art --dex-file=/data/app/com.jogamp.common-1/base.apk --oat-fd=22 --oat-location=/data/data/jogamp.android.launcher/app_temp/jogamp/file_cache/jln-793896077/jln-541934443/jogampDex/base.dex --runtime-arg -Xms64m --runtime-arg -Xmx512m I/dex2oat ( 5178): dex2oat took 530.117ms (threads: 2) W/art ( 5162): Failed to find OatDexFile for DexFile /data/app/javax.media.opengl-1/base.apk ( canonical path /data/app/javax.media.opengl-1/base.apk) with checksum 0xd8c176a7 in OatFile /data/data/jogamp.android.launcher/app_temp/jogamp/file_cache/jln-793896077/jln-541934443/jogampDex/base.dex I/dex2oat ( 5181): /system/bin/dex2oat --runtime-arg -classpath --runtime-arg --instruction-set=arm --instruction-set-features=div --runtime-arg -Xrelocate --boot-image=/system/framework/boot.art --dex-file=/data/app/javax.media.opengl-1/base.apk --oat-fd=20 --oat-location=/data/data/jogamp.android.launcher/app_temp/jogamp/file_cache/jln-793896077/jln-541934443/jogampDex/base.dex --runtime-arg -Xms64m --runtime-arg -Xmx512m +++
ee977a8a773b3461c42f64583d6cfe1ab5322b9e Fixed as described (copy APK file)