2012-07-03 82 views
0

我已經嘗試了一個簡單的NDK C++(與C語言完全不同的語法!)hello world,它的工作原理。編碼ndk主要()有很多包括

現在我想用NDK編譯我非常大的C++文件。

我需要重命名我的main()嗎?我注意到一些使用android_main()的帖子,還是應該使用標準的package.class.method?並用優秀的環境包圍它們!它的工作原理是這樣的:

extern "C" { 
JNIEXPORT jstring JNICALL 
    Java_com_optimuse_app_OptimuseAppActivity_generate(JNIEnv* env, jobject thiz){} 

但是,我可以重命名我的主要是這樣的東西?或者我應該使用android_main。互聯網上的許多帖子讓我感到困惑。

此外,我不知道我需要做什麼與我所有的包括。我有一堆像<algorithm.h>和我自己的.h文件。

謝謝你幫助我的公約。

+0

關於庫。即使是我添加APP_STL:= stlport_static到Android.mk,我他找不到iostream – dorien

回答

0

好吧,我得到它的工作:我從Mk文件中省略我的.h文件。我從Java添加了這個在主要底部(更名爲MAIN1)它:

extern "C" { 

JNIEXPORT jstring JNICALL Java_com_example_optimuse_MainActivity_generate(JNIEnv* env, jobject thiz); 
}; 

JNIEXPORT jstring JNICALL Java_com_example_optimuse_MainActivity_generate(JNIEnv* env, jobject thiz){ 

    string str = main1(); 
    return env->NewStringUTF(str.c_str()); 

}