Message info
 
To:libreoffice-dev From:Tor Lillqvist Subject:Re: Android: java.lang.reflect.UndeclaredThrowableException from com.sun.star.ucb.ContentCreationException: Unable to create Content Date:Fri, 30 Mar 2012 18:48:29 +0300
 

Argh, I think I know the problem. My own mistake...

I forgot to execute the run-time binary patching of a bug in the NDK's
shared GNU C++ library... without that patch, catching exceptions
thrown in another shared object doesn't work.

I am experimenting with
http://cgit.freedesktop.org/libreoffice/core/tree/android/experiments/DocumentLoader/src/org/libreoffice/android/examples/DocumentLoader.java
, which unlike the unit test stuff in android/qa/sc does not use a
subclass of Android's NativeActivity (or of our Bootstrap class,
http://cgit.freedesktop.org/libreoffice/core/tree/android/Bootstrap/src/org/libreoffice/android/Bootstrap.java,
which is a subclass of NativeActivity).

Thus android_main(),
http://cgit.freedesktop.org/libreoffice/core/tree/sal/android/lo-bootstrap.c#n1617
doesn't get executed. And it's android_main() that calls
patch_libgnustl_shared(),
http://cgit.freedesktop.org/libreoffice/core/tree/sal/android/lo-bootstrap.c#n1373
.

So I just need to call (its JNI wrapper)
Bootstrap.patch_libgnustl_shared() and cross-shared-library exception
handling should work fine. Knock on wood...

Yeah, I probably should move the patch_libgnustl_shared() call to the
setup() function, so that it isn't forgotten so easily...

--tml
_______________________________________________
LibreOffice mailing list
LibreOffice@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice