0

単純なNDCK++(Cとはまったく異なる構文です!)hello worldを試しましたが、動作します。

次に、非常に大きなC++ファイルをNDKでコンパイルします。

名前を変更する必要があり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ファイルのようなものをたくさん持っています。

大会を手伝ってくれてありがとう。

4

1 に答える 1

0

わかりました。動作しました。Mkファイルから.hファイルを省略しました。そして、これをmainの下部に追加しました(main1に名前を変更しました)。javaから:

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());

}
于 2012-07-05T08:00:49.047 に答える