如题,调用这个函数的时候,直接崩溃。错误报在 if 语句那一行。
int CCNetwork::getInternetConnectionStatus(void)
{
JniMethodInfo methodInfo;
if (JniHelper::getStaticMethodInfo(methodInfo, “org/cocos2dx/utils/PSNetwork”, “getInternetConnectionStatus”,
“()I”))
{
jint ret = methodInfo.env->CallStaticIntMethod(methodInfo.classID, methodInfo.methodID);
methodInfo.env->DeleteLocalRef(methodInfo.classID);
return ret;
}
return kCCNetworkStatusNotReachable;
}
CCNetworkAndroid.cpp
需要在java代码里初始化一下相关的原生模块
如果加入这个初始化后,又报下面这个错误
Failed to find class of org/cocos2dx/utils/PSNetwork
确认这个模块存在?路径是否正确?
和PSNetwork同一级的PSNative是可以正常使用的。
这个报错确实是类找不到了,请再确认一下路径名吧,大小写等等看有没有问题
int HttpDelegate::getInternetConnectionStatus(void)
{
return CCNetwork::getInternetConnectionStatus();
}
我是直接在C++中调用的,然后只要调用这个函数,就会报类找不到。
Java那边的初始化代码是怎么样的?
public Cocos2dxGLSurfaceView onCreateView() {
PSNative.init(this);
PSNetwork.init(this);
Cocos2dxGLSurfaceView glSurfaceView = new Cocos2dxGLSurfaceView(this);
glSurfaceView.setEGLConfigChooser(5, 6, 5, 0, 16, 8);
return glSurfaceView;
}
如果路径和类名都没错的话,报Failed to find class确实太没道理了
PSNative用得好好的,就PSNetwork一用就报这个错误。
不知道什么原因。
不过还是谢谢你的回答。
这个错误只在安卓设备上出现,在IOS设备上可以正常运行的。
没解决。。。。。。
嗯 ,那请求网络,就直接开搞? 不判断 网络状态了?
你用http的话,会有个状态码返回,可以根据这个来判断
如果是socket直连,如果断线,也是能检测出来的
只能自己处理一下这些情况。
quick3.3下, 安卓真机调试, 调用network.getInternetConnectionStatus() 后奔溃,见图
在 AndroidManifest.xml中设置权限
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.INTERNET"/>