NDK通过JNIEnv获取AssetManager的实例(Xamarin.Android,C ++)

时间:2017-05-05 16:31:32

标签: c++ xamarin android-ndk native jnienv

我正在编写一个包含本机C ++库的Xamarin Android应用程序。

该本机库包含一个应该通过assetmanager加载图像的函数。

C ++

#include <android/asset_manager.h>
#include <android/asset_manager_jni.h>

void showImage(JNIEnv* env)
{
    jclass clsAct = jniEnv->FindClass("android/app/Activity");

    //... missing code to get activity

    AAssetManager* assetManager = activity->assetManager;
    AAsset* assetFile = AAssetManager_open(assetManager, "image.txt", AASSET_MODE_BUFFER);

    //load image
}

就我所知。不知何故,我需要获取活动才能访问资产管理员以加载资产。调用showImage工作正常,调用FindClass后也会设置clsAct,所以我猜没有错。

C#

[DllImport("libAndroid", EntryPoint = "showImage")]
private static extern void ShowImage(IntPtr jniEnv);

//...

ShowImage(JNIEnv.Handle);

//...

如何通过JNIEnv访问C ++端的当前活动?

0 个答案:

没有答案