Sto tentando di accedere alle risorse da un apk di Android utilizzando AAssetManager. Tuttavia, continuo a ricevere "Riferimento non definito a AAssetManager_fromJava" anche se ho incluso asset_manager.h e asset_manager_jni.h Altre funzioni di asset_manager.h, come AAssetManager_openDir (mgr, "") ecc. Non possono essere referenziate.Riferimento non definito a AAssetManager_fromJava
Ecco il codice completo
#define EXPORT_API
#include <string.h>
#include <jni.h>
#include <android\log.h>
#include <sys\types.h>
#include <android\asset_manager.h>
#include <android\asset_manager_jni.h>
#define LOGD(...) __android_log_print(ANDROID_LOG_DEBUG, "com.devin - native", __VA_ARGS__)
JNIEnv* env=0;
#ifdef __cplusplus
extern "C" {
#endif
JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM* vm, void* pvt){
LOGD("JNI_OnLoad() called");
vm->AttachCurrentThread(&env, 0);
return JNI_VERSION_1_2;
}
EXPORT_API void LoadAsset(char* filename, jobject assetManager){
AAssetManager* mgr = AAssetManager_fromJava(env, assetManager);
/* More stuff */
}
#ifdef __cplusplus
};
#endif
Questo codice è in un file cpp e di essere compilato con NDK R8. Sto facendo qualcosa di terribilmente sbagliato qui?
Ho lo stesso problema, anche se ho aggiunto -landroid ai tuoi LOCAL_LDLIBS al mio Android.mk presentare – Ege
@Ege hanno chiare il problema .. –
#LifeSaver Grazie mille per questo – FrickeFresh