Enable Exception C++

后端 未结 8 636
醉梦人生
醉梦人生 2021-01-01 13:00

I am trying to make APP native code for Android. The Native code is in cplusplus. Whenever I try to make, the following error appears.

H236Plus.cpp:13

相关标签:
8条回答
  • 2021-01-01 13:05

    with the latest version of Android Studio this is what my build.gradle looks like:

    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"
            }
        }
    }
    
    0 讨论(0)
  • 2021-01-01 13:14

    I solved this problem by adding cFlags "-fexceptions" into ndk section of build.gradle script, like this:

    ndk {
        ...
        cFlags "-fexceptions"
    }
    
    0 讨论(0)
  • 2021-01-01 13:23

    You need to build with CrystaX's custom NDK. It has full libstdc++, RTTI and exceptions support. It's generally the best tool for Android development I know.

    0 讨论(0)
  • 2021-01-01 13:23

    It depends on what runtime you are using. If you are not using system runtime and are building with ndk-build, you add any of these to your Android.mk file:

    • LOCAL_CPP_FEATURES += exceptions (Recommended)
    • LOCAL_CPPFLAGS += -fexceptions

    Also, you can add the following line to your Application.mk file:

    • APP_CPPFLAGS += -fexceptions

    There's more information in docs/CPLUSPLUS-SUPPORT.html in your NDK folder

    0 讨论(0)
  • 2021-01-01 13:23

    -fexception is a compiler switch. How you use it depends on your compiler setup. What compiler are you using? IDE? build tool?

    0 讨论(0)
  • 2021-01-01 13:24

    In the compiler flags add -fexception in your Makefile.

    0 讨论(0)
提交回复
热议问题