Habilitar excepción C ++

Estoy tratando de hacer APP código nativo para Android. El código nativo está en cplusplus. Siempre que intento hacer, aparece el siguiente error.

H236Plus.cpp: 135: error: manejo de excepciones inhabilitado, use -fexceptions para habilitar

¿Cómo utilizo -fexceptions para habilitar el manejo de excepciones, y dónde lo uso?

Necesita crear con NDK personalizado de CrystaX. Tiene libstdc ++ completo, RTTI y soporte de excepciones. Es generalmente la mejor herramienta para el desarrollo de Android que conozco.

Depende del tiempo de ejecución que esté utilizando. Si no está utilizando el tiempo de ejecución del sistema y está construyendo con ndk-build , agregue cualquiera de ellos al archivo Android.mk:

  • LOCAL_CPP_FEATURES + = excepciones (recomendado)
  • LOCAL_CPPFLAGS + = -fexceptions

Además, puede agregar la siguiente línea a su archivo Application.mk:

  • APP_CPPFLAGS + = -fexceptions

Hay más información en docs/CPLUSPLUS-SUPPORT.html en su carpeta NDK

-fexception es un conmutador de compilador. Su uso dependerá de la configuración del compilador. Qué compilador estas usando? IDE? Herramienta de construcción

En los indicadores del compilador, agregue -fexception en su Makefile.

Con la última versión de Android Studio esto es lo que mi build.gradle se parece a:

 model { android { compileSdkVersion 23 buildToolsVersion "23.0.2" buildTypes { release { minifyEnabled false shrinkResources false proguardFiles.add(file("proguard-rules.txt")) signingConfig = $("android.signingConfigs.release") } } defaultConfig { applicationId "my.android.app" minSdkVersion.apiLevel 16 targetSdkVersion.apiLevel 23 versionCode 29 versionName "my.latest.version" } ndk { moduleName "jni-utils" ldLibs.add("log") cppFlags.add("-std=c++11") cppFlags.add("-fexceptions") stl "gnustl_static" } } android.signingConfigs { create("release") { storeFile "C:\\Android\\Git\\MyProject\\keystore\\keystoreCommon" storePassword "put you password here" keyAlias "put your alias here" keyPassword "put your password here" } } } 

He resuelto este problema mediante la adición de cFlags "-fexceptions" en la sección ndk de script build.gradle, como esto:

 ndk { ... cFlags "-fexceptions" } 
  • Construir Firefox Fennec con Flash Player incrustado
  • Android NDK: Incluye la biblioteca de boost c ++
  • Error de compilación de Android
  • Android no puede construir el proyecto con NDK-Build.cmd de NDK r7
  • Error en la generación yasm / source / patched-yasm / util.h: 78: 23: error: libintl.h: Ningún archivo o directorio
  • ¿Cómo hacer un android mm limpio?
  • Lectura de archivos de Android.mk en subdirecciones recursivamente
  • Herramienta para generar un Android.mk
  • Referencia indefinida a 'typeinfo for testing :: Test' con Google Test en Android NDK
  • Cómo incorporar el archivo de hacer existente con Android NDK
  • ¿Cómo ejecutar reglas personalizadas en Android.mk antes de la compilación?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.