Mak*_*sov 3 c android android-ndk
几天前,我开始玩android NDK.试图从书中编译一个示例程序出现了一个小问题.
所以在这里我需要获得对JavaVM的引用.
// Global env ref (for callbacks)
static JavaVM *g_VM;
JNIEXPORT jint JNICALL Java_jni_Natives_LibMain
(JNIEnv * env, jclass class, jobjectArray jargv)
{
// obtain a global ref to the caller jclass
(*env)->GetJavaVM(env, &g_VM); ...
Run Code Online (Sandbox Code Playgroud)
Eclipse说" method 'GetJavaVM()' could not be resolved"就像包含其他方法的每一行一样(*env) object.
包含目录有路径:C:\programs\IDE\adt-bundle-windows-x86_64-20130219\android-ndk-r8e\platforms\android-14\arch-arm\usr\include所以我不认为它可能是包含路径的东西,但我可能是错的.
你在编译.cpp文件吗?<jni.h>对C和C++有不同的JNIEnv实现,而你正在使用C版本.在C++中,您的代码看起来像这样:
JNIEXPORT jint JNICALL Java_jni_Natives_LibMain
(JNIEnv * env, jclass class, jobjectArray jargv)
{
// obtain a global ref to the caller jclass
env->GetJavaVM(&g_VM); ...
Run Code Online (Sandbox Code Playgroud)
获取JavaVM引用的常规方法是在JNI_OnLoad中:
JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM* vm, void* aReserved)
{
// cache java VM
g_VM = vm;
...
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4297 次 |
| 最近记录: |