如何使用JNI安卓获得应用程序构建配置(调试或发布)



我正在安卓项目中开发一个so库。我需要使用JNI在本机代码上检查应用程序的构建配置(调试或发布(。最好的方法是什么?

假设您的包是com.example.hellojni,这将从BuildConfig类获取DEBUGBUILD_TYPE静态字段:

extern "C" JNIEXPORT jstring JNICALL
Java_com_example_hellojni_HelloJni_stringFromJNI( JNIEnv* env, jobject thiz )
{
jclass cls_HelloJni = env->FindClass("com/example/hellojni/BuildConfig");
jfieldID fid_HelloJNI_buildType = env->GetStaticFieldID(cls_HelloJni, "BUILD_TYPE", "Ljava/lang/String;");
jfieldID fid_HelloJNI_debug = env->GetStaticFieldID(cls_HelloJni, "DEBUG", "Z");
jstring jBuildType = (jstring) env->GetStaticObjectField(cls_HelloJni, fid_HelloJNI_buildType);
jboolean jDebug = env->GetStaticBooleanField(cls_HelloJni,fid_HelloJNI_debug);
const char * buildType = env->GetStringUTFChars(jBuildType, nullptr);
std::string out = (std::stringstream() << "Build type is " << buildType << ", debug says " << (jDebug ? "debug" : "not debug")).str();
env->ReleaseStringUTFChars(jBuildType, buildType);
return (env)->NewStringUTF(out.c_str());
}

最新更新