Я играю в игру cocos2d-x, и у меня было странное поведение, я не уверен, нормальное ли это или что происходит, но это то, что происходит, поэтому класс AppActivity.java
расширяет класс Cocos2dxActivity.java
.Мне не нужно было вызывать System.loadLibrary("MyGame");
в моем классе AppActivity.java
, так как он вызывается в 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
классе, но я чувствую, что это должно работать без необходимости вызывать loadLibrary
в моем appActivity
классе, так как он уже вызывается в Cocos2dxActivity
и appActivity extends Cocos2dxActivity
?спасибо за любую помощь, ребята, вы можете дать мне
static {
System.loadLibrary("MyGame");
}