我正在制作一个cocos2d-x游戏,我遇到了一些奇怪的行为,不确定它是否正常或发生了什么,但是以下是发生的情况:AppActivity.java类扩展了Cocos2dxActivity.java类。在我的AppActivity.java类中,我不需要调用System.loadLibrary("MyGame");,因为它已经在Cocos2dxActivity.java中被调用了。但是如果我像这样进行普通声明,会发生以下情况。
private native String invokeNativeString();
一切都运行良好,但是当我尝试在这个下面直接声明时,我收到了这个错误
String ami = new String(invokeNativeString());
然后遇到了错误:
05-01 09:11:27.250 10135-10135/com.izzyjmachado.spaceball E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.izzyjmachado.spaceball, PID: 10135
java.lang.UnsatisfiedLinkError: No implementation found for java.lang.String org.cocos2dx.cpp.AppActivity.invokeNativeString() (tried Java_org_cocos2dx_cpp_AppActivity_invokeNativeString and Java_org_cocos2dx_cpp_AppActivity_invokeNativeString__)
为什么我声明一个普通的本地字符串时它可以工作,但是当我在字符串声明中使用方法时,它却找不到方法?
我通过在我的AppActivity类中调用它来解决了这个问题,但我感觉不应该在我的appActivity类中调用loadLibrary,因为它已经在Cocos2dxActivity和appActivity扩展了Cocos2dxActivity中被调用了?非常感谢你们能给我任何帮助。
static {
System.loadLibrary("MyGame");
}