返回信息流如题,我在写一个android动态库,想在ndk中调用getFilesDir()获取路径/data/data/<packagename>/file
```JAVA
JNIEXPORT jint JNI_OnLoad(JavaVM* vm, void* reserved)
{
JNIEnv* jni_env = NULL;
jint result = -1;
if ( vm->GetEnv(reinterpret_cast<void**>(&jni_env), JNI_VERSION_1_6) != JNI_OK) {
return result;
}
if(jni_env != NULL){
vm->AttachCurrentThread(&jni_env, NULL);
// getPath() - java
jclass cls_Env = jni_env->FindClass("android/app/NativeActivity");
//jclass activity_thread_clz = jni_env->FindClass("android/app/ActivityThread");
jmethodID mid_getExtStorage = jni_env->GetMethodID(cls_Env, "getFilesDir","()Ljava/io/File;");
jobject obj_File = jni_env->CallObjectMethod( gstate->activity->clazz, mid_getExtStorage);
jclass cls_File = jni_env->FindClass("java/io/File");
jmethodID mid_getPath = jni_env->GetMethodID(cls_File, "getPath","()Ljava/lang/String;");
jstring obj_Path = (jstring) jni_env->CallObjectMethod(obj_File, mid_getPath);
const char* path = jni_env->GetStringUTFChars(obj_Path, NULL);
HOOKLOG("INTERNAL PATH = %s\n", path);
strcpy(sAppPath, path);
jni_env->ReleaseStringUTFChars(obj_Path, path);
```
但是这一行调用会出错jni_env->CallObjectMethod( gstate->activity->clazz, mid_getExtStorage);,因为gstate是一个android_app的指针,但是这个指针获取不到,所以我就卡到这里了,请各位帮忙看下!
这是一条镜像帖。来源:北邮人论坛 / mobile-internet / #8476同步于 2017/7/29
该镜像源已超过 30 天没有更新,可能在源站已被删除。
MobileInternet机器人发帖
android ndk 如何调用getFilesDir()获取程序路径
asm
2017/7/29镜像同步2 回复
订阅后,新回复会通过你的通知中心匿名送达。
2 条回复