android層java如何呼叫cocos2dx c++程式碼 步驟

你的財神爺發表於2018-03-14

1.在android層上宣告native函式

private static native void xxxTest();

2.在android層上引用native函式

@Override
protected void onCreate(Bundle savedInstanceState) {
   // TODO Auto-generated method stub
   super.onCreate(savedInstanceState);  
 xxxTest();
}

3.在cocos2dx,c++程式碼中定義xxxTest()函式

#if (CC_TARGET_PLATFORM == CC_PLATFORM_ANDROID)  
extern "C"
{
void Java_com_xxx_xxxActivity_xxxTest(JNIEnv *env,jobject thiz)//com_xxx_xxxActivity為應用包名,xxxTest為函式名
    {
        //在這裡處理相應的邏輯  
    }

}

你可以把這段程式碼寫在cocos工程 jni/hellocpp/main.cpp下

namespace {
std::unique_ptr<AppDelegate> appDelegate;
}

void cocos_android_app_init (JNIEnv* env, jobject thiz) {
    LOGD("cocos_android_app_init");
    appDelegate.reset(new AppDelegate());
}
如上。

相關文章