cpp:
JniMethodInfo minfo;
//getStaticMethodInfo,判断Java静态函数是否存在,并且把信息保存到minfo里
//参数1:JniMethodInfo
//参数2:Java类包名+类名
//参数3:Java函数名称
//参数4:函数参数类型和返回值类型
bool isHave = JniHelper::getStaticMethodInfo(minfo,“com/jacky/test/Test”,“getInstance”,"()Lcom/jacky/test/Test;");
jobject jobj;//存对象
if (isHave) {
//这里的调用getInstance,返回Test类的对象。
//CCLOG(“第一步成功\r\n”);
jobj = minfo.env->CallStaticObjectMethod(minfo.classID, minfo.methodID);
isHave = JniHelper::getMethodInfo(minfo,"com/jacky/test/Test","openWebview","()V");
if (isHave) {
//CCLOG("第二步成功\r\n");这里没问题
//调用openWebview, 参数1:Test对象 参数2:方法ID
minfo.env->CallVoidMethod(jobj, minfo.methodID);//这一部崩掉
}
}
java:
public void openWebview() {
Log.v(“TestJacky”, “openWebView”);
this.runOnUiThread(new Runnable() {//在主线程里添加别的控件
public void run() {
//初始化webView
m_webView = new WebView(test);
//设置webView能够执行javascript脚本
m_webView.getSettings().setJavaScriptEnabled(true);
//设置可以支持缩放
m_webView.getSettings().setSupportZoom(true);//设置出现缩放工具
m_webView.getSettings().setBuiltInZoomControls(true);
//载入URL
m_webView.loadUrl(“http://m.blog.csdn.net/blog/jackyvincefu/”);
//使页面获得焦点
m_webView.requestFocus();
//如果页面中链接,如果希望点击链接继续在当前browser中响应
m_webView.setWebViewClient(new WebViewClient(){
public boolean shouldOverrideUrlLoading(WebView view, String url) {
if(url.indexOf(“tel:”)<0){
view.loadUrl(url);
}
return true;
}
});
//背景图
m_imageView = new ImageView(test);
m_imageView.setImageResource(R.drawable.bkgnd);
m_imageView.setScaleType(ImageView.ScaleType.FIT_XY);
//初始化线性布局 里面加按钮和webView
m_topLayout = new LinearLayout(test);
m_topLayout.setOrientation(LinearLayout.VERTICAL);
//初始化返回按钮
m_backButton = new Button(test);
m_backButton.setBackgroundResource(R.drawable.btn);
LinearLayout.LayoutParams lypt=new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
lypt.gravity=Gravity.RIGHT;
m_backButton.setLayoutParams(lypt);
m_backButton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
removeWebView();
}
});
//把image加到主布局里
m_webLayout.addView(m_imageView);
//把webView加入到线性布局
m_topLayout.addView(m_backButton);
m_topLayout.addView(m_webView);
//再把线性布局加入到主布局
m_webLayout.addView(m_topLayout);
}
});
}
错误 Fatal signal 11 (SIGSEGV) at 0x00000000 (code=1), thread 19886 (Thread-10556
求原因