Log in or register to post comments

ARVR Sample on ODG R-7: ClassNotFoundException

October 24, 2017 - 3:29pm #1

I'm trying to run the ARVR sample application for Android on an ODG R-7 (Android 6.0.1, API 23). I'm compiling the project with Android Studio 2.3.3.

I've followed the instructions here: https://library.vuforia.com/articles/Solution/Getting-Started-with-Vuforia-for-Android-Development.html

...And created a license key using the License Manager and updated Vuforia.setInitParameters in SampleApplicationSession.java with my license key. When I launch the sample app via Android Studio and click either of the "AR" buttons I get the following error:

"Unfortunately, ARVR has stopped."

Tailing the log with logcat I see that the problem is caused by a ClassNotFoundException: "com.osterhoutgroup.api.ext.ExtendDisplay" can't be found.



Here's the stacktrace:

10-24 13:35:07.205 15104-15104/com.vuforia.samples.ARVR D/AndroidRuntime: Shutting down VM
10-24 13:35:07.207 15104-15104/com.vuforia.samples.ARVR E/AndroidRuntime: FATAL EXCEPTION: main
                                                                          Process: com.vuforia.samples.ARVR, PID: 15104
                                                                          java.lang.NoClassDefFoundError: Failed resolution of: Lcom/osterhoutgroup/api/ext/ExtendDisplay;
                                                                              at com.vuforia.ar.pl.ODGR7Controller.logMetrics(ODGR7Controller.java:37)
                                                                              at com.vuforia.ar.pl.ODGR7Controller.doSetStereo(ODGR7Controller.java:77)
                                                                              at com.vuforia.ar.pl.ODGR7Controller.access$000(ODGR7Controller.java:21)
                                                                              at com.vuforia.ar.pl.ODGR7Controller$1.run(ODGR7Controller.java:59)
                                                                              at android.os.Handler.handleCallback(Handler.java:739)
                                                                              at android.os.Handler.dispatchMessage(Handler.java:95)
                                                                              at android.os.Looper.loop(Looper.java:148)
                                                                              at android.app.ActivityThread.main(ActivityThread.java:5483)
                                                                              at java.lang.reflect.Method.invoke(Native Method)
                                                                              at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
                                                                              at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
                                                                           Caused by: java.lang.ClassNotFoundException: Didn't find class "com.osterhoutgroup.api.ext.ExtendDisplay" on path: DexPathList[[zip file "/data/app/com.vuforia.samples.ARVR-2/base.apk", zip file "/data/app/com.vuforia.samples.ARVR-2/split_lib_dependencies_apk.apk", zip file "/data/app/com.vuforia.samples.ARVR-2/split_lib_slice_0_apk.apk", zip file "/data/app/com.vuforia.samples.ARVR-2/split_lib_slice_1_apk.apk", zip file "/data/app/com.vuforia.samples.ARVR-2/split_lib_slice_2_apk.apk", zip file "/data/app/com.vuforia.samples.ARVR-2/split_lib_slice_3_apk.apk", zip file "/data/app/com.vuforia.samples.ARVR-2/split_lib_slice_4_apk.apk", zip file "/data/app/com.vuforia.samples.ARVR-2/split_lib_slice_5_apk.apk", zip file "/data/app/com.vuforia.samples.ARVR-2/split_lib_slice_6_apk.apk", zip file "/data/app/com.vuforia.samples.ARVR-2/split_lib_slice_7_apk.apk", zip file "/data/app/com.vuforia.samples.ARVR-2/split_lib_slice_8_apk.apk", zip file "/data/app/com.vuforia.samples.ARVR-2/split_lib_slice_9_apk.apk"],nativeLibraryDirectories=[/data/app/com.vuforia.samples.ARVR-2/lib/arm, /data/app/com.vuforia.samples.ARVR-2/base.apk!/lib/armeabi-v7a, /data/app/com.vuforia.samples.ARVR-2/split_lib_dependencies_apk.apk!/lib/armeabi-v7a, /data/app/com.vuforia.samples.ARVR-2/split_lib_slice_0_apk.apk!/lib/armeabi-v7a, /data/app/com.vuforia.samples.ARVR-2/split_lib_slice_1_apk.apk!/lib/armeabi-v7a, /data/app/com.vuforia.samples.ARVR-2/split_lib_slice_2_apk.apk!/lib/armeabi-v7a, /data/app/com.vuforia.samples.ARVR-2/split_lib_slice_3_apk.apk!/lib/armeabi-v7a, /data/app/com.vuforia.samples.ARVR-2/split_lib_slice_4_apk.apk!/lib/armeabi-v7a, /data/app/com.vuforia.samples.ARVR-2/split_lib_slice_5_apk.apk!/lib/armeabi-v7a, /data/app/com.vuforia.samples.ARVR-2/split_lib_slice_6_apk.apk!/lib/armeabi-v7a, /data/app/com.vuforia.samples.ARVR-2/split_lib_slice_7_apk.apk!/lib/armeabi-v7a, /data/app/com.vuforia.samples.ARVR-2/split_lib_slice_8_apk.apk!/lib/armeabi-v7a, /data/app/com.vuforia.samples.ARVR-2/split_lib_slice_9_apk.apk!/lib/armeabi-v7a, /vendor/lib, /system/lib]]
                                                                              at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
                                                                              at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
                                                                              at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
                                                                              at com.vuforia.ar.pl.ODGR7Controller.logMetrics(ODGR7Controller.java:37) 
                                                                              at com.vuforia.ar.pl.ODGR7Controller.doSetStereo(ODGR7Controller.java:77) 
                                                                              at com.vuforia.ar.pl.ODGR7Controller.access$000(ODGR7Controller.java:21) 
                                                                              at com.vuforia.ar.pl.ODGR7Controller$1.run(ODGR7Controller.java:59) 
                                                                              at android.os.Handler.handleCallback(Handler.java:739) 
                                                                              at android.os.Handler.dispatchMessage(Handler.java:95) 
                                                                              at android.os.Looper.loop(Looper.java:148) 
                                                                              at android.app.ActivityThread.main(ActivityThread.java:5483) 
                                                                              at java.lang.reflect.Method.invoke(Native Method) 
                                                                              at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
                                                                              at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 
                                                                          	Suppressed: java.lang.ClassNotFoundException: com.osterhoutgroup.api.ext.ExtendDisplay
                                                                              at java.lang.Class.classForName(Native Method)
                                                                              at java.lang.BootClassLoader.findClass(ClassLoader.java:781)
                                                                              at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)
                                                                              at java.lang.ClassLoader.loadClass(ClassLoader.java:504)
                                                                              		... 12 more
                                                                           Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack trace available
10-24 13:35:07.314 15104-15696/com.vuforia.samples.ARVR D/AR: RenderManager: Could not retrieve a valid GLSurfaceView in view hierarchy, therefore cannot set any render mode

Any help resolving this issue would be appreciated. Thanks in advance.

ARVR Sample on ODG R-7: ClassNotFoundException

November 2, 2017 - 11:15am #11

Thanks for these details, I'll be sure to pass this information along.

-Vuforia Support

ARVR Sample on ODG R-7: ClassNotFoundException

November 2, 2017 - 9:55am #10

Hi Strasza,

I found a solution. Please pass this along to the dev team:

 

  1. I spoke with ODG support and they gave me a new beta release of ReticleOS (v3.10.40-gbb56046) that's intended to be compatible with Vuforia 6.5.23
  2. After sideloading the new ReticleOS I encountered the same ClassNotFoundException when running the ARVR sample app
  3. Next I searched through the ODG developer site and downloaded the Reticle API: https://developer.osterhoutgroup.com/hc/en-us/articles/210027086-Developer-Tools
  4. I then placed the Reticle API jar file (com.osterhoutgroup.api.ext.jar) into my Vuforia SDK jar dir (next to Vuforia.jar)
  5. I then updated the ARVR build scripts (app/build.gradle) to include the new jar:

 

dependencies {
    compile files("$VUFORIA_SDK_DIR/$JAR_DIR/Vuforia.jar")
    compile files("$VUFORIA_SDK_DIR/$JAR_DIR/com.osterhoutgroup.api.ext.jar") // Add this line to the ARVR sample build scripts
}

It seems to me that in order to make the Vuforia sample applications work "out of the box" like the documentation claims then this jar needs to be bundled with the Vuforia SDK.

ARVR Sample on ODG R-7: ClassNotFoundException

October 30, 2017 - 10:26am #9

You'll need to get the glasses down to Android 4 or 4.4 and the firmware version would be 3.5.19 (or earlier). This worked with Unity 5.6 and Vuforia 6.2.10.

Thanks,

-Vuforia Support

ARVR Sample on ODG R-7: ClassNotFoundException

October 30, 2017 - 9:05am #8

Can you give me the last "known good" version of the ODG firmware that is compatible with Vuforia? I'd like to contact ODG to see if I can downgrade my glasses.

ARVR Sample on ODG R-7: ClassNotFoundException

October 27, 2017 - 4:00pm #7

Hi Strasza,

That's disappointing, but understandable. Thanks for your help and I'll continue to monitor this thread for updates.

ARVR Sample on ODG R-7: ClassNotFoundException

October 27, 2017 - 2:31pm #6

Hello again,

The version of the firmware for the ODG R-7 that is currently available does not have the necessary changes for Vuforia support. The next firmware update from ODG will contain the necessary changes and should address the issue you are facing here. Keep an eye out for an update on your device and I'll update this thread when I hear about the release.

Sorry for the inconvenience,

-Vuforia Support


ARVR Sample on ODG R-7: ClassNotFoundException

October 25, 2017 - 4:30pm #5

Thanks, Strasza. I'll keep an eye on this thread for updates. 

ARVR Sample on ODG R-7: ClassNotFoundException

October 25, 2017 - 3:23pm #4

I'm waiting on more information related to this. As soon as I get it, I'll give you an update here.

Thanks for your patience,

-Vuforia Support

ARVR Sample on ODG R-7: ClassNotFoundException

October 25, 2017 - 9:41am #3

Hi Strasza,

No I was not connected to Wi-Fi.

Vuforia Android SDK
6.5.23

Vuforia Eyeware Android Sample
6.5.19

Regarding the ODG R-7:

Android Version
6.0.1

Kernel version
3.10.40-g6590eb7
jenkins@odgeng05 #1
Mon Apr 17 18:11:51 PDT 2017

Build number
MMB29M.odg_R7_V4.1.14

I'm happy to provide more info/diagnostics. Thanks again.

ARVR Sample on ODG R-7: ClassNotFoundException

October 24, 2017 - 4:51pm #2

Hello rustyalitheon,

Just a few questions for you. What version of Vuforia are you using? Were you connected to wifi? What is the firmware version of your ODG R-7?

Thanks,

-Vuforia Support

Log in or register to post comments