Android NDK R5 et prise en charge de l'exception C ++

Je suis en train d'utiliser le NDK 5 C++ gnustl:

La CPLUSPLUS-SUPPORT.html états:

Le NDK la chaîne prend en charge les exceptions C++, depuis NDK r5, cependant tous C++
les sources sont compilées avec -fno-exceptions support par défaut, pour
des raisons de compatibilité avec les versions précédentes.

Pour l'activer, utilisez l'option '-fexceptions' compilateur C++ drapeau. Cela peut être fait
par adjonction, pour chaque module de définition dans votre Android.mk:

LOCAL_CPPFLAGS += -fexceptions

Plus simplement, d'ajouter une seule ligne de votre Application.mk, le réglage
s'appliquent automatiquement à tous de votre projet NDK modules:

APP_CPPFLAGS += -fexceptions

sources/cxx-stl/gnu-libstdc++/README états:

Ce répertoire contient les en-têtes et prêts à l'emploi binaires pour la
GNU libstdc++-v3 C++ Standard Template Library mise en œuvre.

Celles-ci sont générées à partir de la chaîne de compilation des sources par l'rebuild-all-prebuilt.sh
script en cours de fabrication et des outils.

Pour l'utiliser, définir APP_STL 'gnustl_static" dans votre Application.mk.
Voir docs/CPLUSPLUS-SUPPORT.html pour plus de détails.

Cette mise en œuvre prend entièrement en charge les exceptions C++ et RTTI.

Mais toutes les tentatives à l'aide d'exceptions échouer. Une alternative NDK existe sur http://www.crystax.net/android/ndk-r4.php. À l'aide de la bonjour-jni exemple de cette NDK ne fonctionne pas. Compliation avec le NDK 5 œuvres après la création d'un Application.xml avec

APP_STL := gnustl_static

Réglage APP_STL à gnustl_static également active automatiquement -frtti et -fexceptions. Mais il meurt la même mort horrible comme mes propres expériences.

J'ai réussi à obtenir un exemple minimal de code qui est en échec pour moi:

try {
    __android_log_write(ANDROID_LOG_DEBUG,"foobar","trhown!");
    throw "Wrong object type.";
} catch (char* b) {
    __android_log_write(ANDROID_LOG_DEBUG,"foobar","catched!");
}

Suis me manque quelque chose ou est l'instruction dans la README et CPLUSPLUS-SUPPORT.html tout simplement faux?

source d'informationauteur plaisthos