安徽休宁建设厅网站,二手车的网站建设例子,做网站哪些软件,建设部指定发布招标信息网站本文是推荐使用过jsb.reflection的开发者进行阅读。关于jsb.reflection的说明请参照#xff1a;我们在代码编写过程中#xff0c;通常会需要在js脚本中调用到java代码或者Objective-C的代码。例如#xff1a;接入sdk#xff0c;显示webview#xff0c;使用原生代码#x…本文是推荐使用过jsb.reflection的开发者进行阅读。关于jsb.reflection的说明请参照我们在代码编写过程中通常会需要在js脚本中调用到java代码或者Objective-C的代码。例如接入sdk显示webview使用原生代码接入广告等等。现在以在js脚本在Android中使用webview为例。首先在js脚本中加入如下代码。调用java端的webviewvar webUrl http://www.baidu.com;if(cc.sys.os cc.sys.OS_ANDROID){this.addKeyListener();this.webViewId jsb.reflection.callStaticMethod(org/cocos2dx/lib/Cocos2dxWebViewHelper, createWebView, ()I);if(this.webViewId 0) return;jsb.reflection.callStaticMethod(org/cocos2dx/lib/Cocos2dxWebViewHelper, setScalesPageToFit, (IZ)V, this.webViewId, true);jsb.reflection.callStaticMethod(org/cocos2dx/lib/Cocos2dxWebViewHelper, loadUrl, (ILjava/lang/String;)V, this.webViewId, webUrl);}这段代码执行以后会在界面上生成一个webview显示百度的主页。但是实际情况是我们在编译Android版本运行以后发现。在显示完百度主页以后程序就崩溃了。查看后台后发现后台提示了这两个问题。看上面的提示标识的是c端没有实现Java_org_cocos2dx_lib_Cocos2dxWebViewHelper_didFinishLoading 函数 但是实际上。我们会发现这段代码实际上已经在cocos2d-x/cocos/ui/UIWebViewImpl-android.cpp中实现了。并且已经编译进去了。这是为什么呢答案其实是 我们在Cocos2d-JS 3.2版本的时候做过的安装包体积自动缩减功能在作怪。我们在安装包体积缩减的时候采用了 LOCAL_STATIC_LIBRARIES 的方式链接c各个库文件。这种链接方式会在在连接静态连接库的时候移除daed code何谓dead code呢就是调用者模块永远都不会用到的代码段和变量。由于我们是在js脚本中引用的webview对象而在c代码中并没有使用webview对象这就导致了c在生成so链接库的时候将webview这部分代码给移除了。解决方案只需要在我们的c代码中显示调用以下即可。在appDelegate.cpp中引入头文件引入#includeui/UIWebView.h在函数 applicationDidFinishLaunching最后加上即可。