如何获取已安装软件包的lib文件夹路径

如何获取已安装软件包的lib文件夹路径

如果您正在使用本地活动和C ++:

void ANativeActivity_onCreate(ANativeActivity* app, void*, size_t) {

const jclass contextClass = app->env->GetObjectClass(app->clazz);

const jmethodID getApplicationContextMethod =

app->env->GetMethodID(contextClass, "getApplicationContext", "()Landroid/content/Context;");

const jobject contextObject =

app->env->CallObjectMethod(app->clazz, getApplicationContextMethod);

const jmethodID getApplicationInfoMethod = app->env->GetMethodID(

contextClass, "getApplicationInfo", "()Landroid/content/pm/ApplicationInfo;");

const jobject applicationInfoObject =

app->env->CallObjectMethod(contextObject, getApplicationInfoMethod);

const jfieldID nativeLibraryDirField = app->env->GetFieldID(

app->env->GetObjectClass(applicationInfoObject), "nativeLibraryDir", "Ljava/lang/String;");

const jobject nativeLibraryDirObject =

app->env->GetObjectField(applicationInfoObject, nativeLibraryDirField);

const jmethodID getBytesMethod = app->env->GetMethodID(

app->env->GetObjectClass(nativeLibraryDirObject), "getBytes", "(Ljava/lang/String;)[B");

const auto bytesObject = static_cast(app->env->CallObjectMethod(

nativeLibraryDirObject, getBytesMethod, app->env->NewStringUTF("UTF-8")));

const size_t length = app->env->GetArrayLength(bytesObject);

const jbyte* const bytes = app->env->GetByteArrayElements(bytesObject, nullptr);

const std::string libDir(reinterpret_cast(bytes), length);

🎈 相关推荐

梅西要小心!再拿1张黄牌就停赛!裁判对梅西的手球已经手下留情
信用卡办理全流程解析,看完这篇就够了
beat365英国在线体育

信用卡办理全流程解析,看完这篇就够了

📅 08-05 👀 5097
晋级狂欢背后,埃及足球的破碎金字塔
beat365网站假的吗

晋级狂欢背后,埃及足球的破碎金字塔

📅 11-09 👀 2370