JNI函数需要注意的地方

给自己敲个钟,防止每次都犯相同的错误

对于含有下划线的函数,比如在java文件中这样写:

       package com.rix.myApp;
       public class myApp
       {
       public native void rix_init();
       }
       

在jdk 1.7中对应查找的函数为:

       JNIEXPORT void JNICALL Java_com_rix_myApp_myApp_rix_1init
  (JNIEnv *, jobject);
       

记得在jdk 1.6中不会存在这个问题,所以,最好的办法是通过javah
去获取函数,生成对应的.h文件

       javah -classpath bin/classes:android-sdk-windows/platforms/android-7/android.jar:Java/jdk1.7.0_25/lib -d jni com.rix.myApp.myApp
       

但如果函数中不包含下划线则不会存在这样的问题

发表评论

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据