我刚学android开发. 原来是做c.c++的.现在项目想用jni来调用c原来的代码.我碰到的问题是.
我在java里面写了如下的代码.
public class Protocol_type {
public class Proctocol_Type_Base {
public int fromType;
public int operationId;
}
public class Protocol_MsgNormal extends Proctocol_Type_Base {
int normalMsgType;
String fromAddr;
String content;
}
}jni里面写的是
public class readData {
static {
System.loadLibrary("readjni");
}
public native Proctocol_Type_Base Protocol_parseFromString(String telNo, String contentBuf);
}
在cpp里面是这样调用的.
static JNINativeMethod const gMethods[] =
{
{ "Protocol_parseFromString"," (Ljava/lang/String;Ljava/lang/String;)Lcom/example/data/Protocol_type/Proctocol_Type_Base;",(void*) java_Proctocol_from_CCP }
};编译没有问题.
但是一运行.平台会打印出,找不到本地方法.
请大家帮你看看.其实我想的就是返回一个内部类.但是不知道为什么老是说找不到本地方法,
我在java里面写了如下的代码.
public class Protocol_type {
public class Proctocol_Type_Base {
public int fromType;
public int operationId;
}
public class Protocol_MsgNormal extends Proctocol_Type_Base {
int normalMsgType;
String fromAddr;
String content;
}
}jni里面写的是
public class readData {
static {
System.loadLibrary("readjni");
}
public native Proctocol_Type_Base Protocol_parseFromString(String telNo, String contentBuf);
}
在cpp里面是这样调用的.
static JNINativeMethod const gMethods[] =
{
{ "Protocol_parseFromString"," (Ljava/lang/String;Ljava/lang/String;)Lcom/example/data/Protocol_type/Proctocol_Type_Base;",(void*) java_Proctocol_from_CCP }
};编译没有问题.
但是一运行.平台会打印出,找不到本地方法.
请大家帮你看看.其实我想的就是返回一个内部类.但是不知道为什么老是说找不到本地方法,
解决方案 »
- 着急吐血,在线求大侠帮忙!!!scrollview中加入mapview焦点获得问题
- Handler问题 希望大大们教教
- SystemProperties.set问题,很奇怪。。
- android listView下拉刷新上拉更多的效果
- android2.1读取联系人 排序如何实现
- 相同长度的字符串,调用SkPaint::measureText()函数返回差距很大的字符宽度值,Why?!
- 程序卸载后 SharedPreferences 数据 没有删除
- Android中在界面上动态显示歌词
- android 中大数据库 导出到手机里或者电脑上的某个文件夹中
- android客户端发送参数给服务端,服务端接受不到
- 线程异步从网上取数据刷新列表的问题
- 求教~View向SurfaceView切换时的短暂黑屏问题
static {
System.loadLibrary("readjni");
}
public native Proctocol_Type_Base Protocol_parseFromString(String telNo, String contentBuf);
}
不是教你,你完全没看懂。
#include <string.h>
#include <jni.h>
jstring Java_mobile_jni_MyJniActivity_sayHelloWorld( JNIEnv* env,jobject thiz )
{
return (*env)->NewStringUTF(env, "Hello World");
}
才是。我这里没有c代码,直接在jni里用了“Hello World”,也可以写个。add(),add(3,5)填充。