1

I use native C++ with my Android project.

In Java or Kotlin we can use BuildVersion.Code to get the Android code from the Gradle file. How can I get this version code in C++?

Adrian Mole
  • 49,934
  • 160
  • 51
  • 83

1 Answers1

2

This is working for me:

jclass build_config_class = env->FindClass("com/example/app/BuildConfig");
jfieldID version_code_id = env->GetStaticFieldID(build_config_class, "VERSION_CODE", "I");
jfieldID version_name_id = env->GetStaticFieldID(build_config_class, "VERSION_NAME",
                                                      "Ljava/lang/String;");

int version_code = env->GetStaticIntField(build_config_class, version_code_id);
jstring version_name = (jstring) env->GetStaticObjectField(build_config_class, version_name_id);

You need to change com/example/app in the code to match your package name.

gioravered
  • 1,758
  • 3
  • 19
  • 30