2

現在、cocos2d-x を使用してゲームを開発しています。もちろんマルチプラットフォーム対応。基本的に、コーディングと開発には xcode を使用します。IAP(In app purchases)をiPhoneとAndroidのそれぞれのコーディングに分けてつけたい Androidで動かなかったあるクラスの関数を呼び出そうとする問題。

ソースには次のものがあります。

cpp側

MyClass::invoke_init()
{
   JavaVM* jvm = JniHelper::getJavaVM();
   JNIEnv* env;

   jvm->GetEnv((void **) &env, JNI_VERSION_1_2);

   jclass cls;
   jmethodID method;

   cls = env->FindClass("com/joycestudios/game/SampleActivity");
   method = env->GetMethodID(cls, "initFunc", "()V");
   env->CallVoidMethod(cls, method); 
}

ジャワ側

public class SampleActivity extends Cocos2dxActivity
{
    public void initFunc()
    {
        Log.v("LOG_INFO", "initFunc()");
    }
}

次のように最初のテスト:私は進行中です。xcode からビルドし、build_natvie.sh からビルドし、Eclipse から最後のビルドを行います。しかし、Eclipseで実行した後、黒い画面だけでシャットダウンします。

Javaクラスの関数を呼び出す方法は? 問題の分析も含めて、いくつかのサンプルを見てみましたが、問題はありませんか?

4

1 に答える 1

0

エラーログが見つかったかどうかわかりますか?

まず、Androidでゲームが正常に動作しているかどうかを確認します。

関数の呼び出し方法を確認できます。

通常、ネイティブメソッドを呼び出すためにMessageJni、Cocos2d-xライブラリで利用可能なクラスを使用します。MessageJniネイティブメソッドを呼び出すクラスでメソッドを作成します。ネイティブメソッドを呼び出す簡単で便利な方法。

MessageJniクラスを使用してグーグルするだけです。それはあなたの仕事を楽にします。

:)

于 2013-02-11T06:24:35.233 に答える