cocos2dxとandroidでjniを使った連携のcallbackにcocosのclassを指定したいです
その前段階として、
cocos2dxとandroidでjniを使った連携のcallbackで以下を参考に文字列と数字のやり取りはできました。
https://techblog.ca-reward.co.jp/2017/02/post-140.html
Android側callbackでクラスに入ったinstanceの情報(数字と文字列がpropertyに入ってる)が返ってくるのですが
そのクラスと同じ構成のクラスをcocos2dx側にも作り
Android側で受け取った情報をそのままcocosへ渡したいです。
android側はSampleInitでcocos側はCCSampleInitとしてます
Bridgeは以下のようにしました。
proj.android-studio/app/src/jp/co/sample/SampleActivityBridge.java
java
1public class SampleActivityBridge { 2 private static Activity mActivity; 3 private static SampleRequest mSample; 4 public static native void onSampleLoaded(); 5 public static native void onSampleFailedToLoad(SampleInit); 6 private static class SampleRequestDelegate implements SampleRequestListener { 7 public SampleRequestDelegate() { 8 } 9 @Override 10 public void onSampleLoaded(SampleInit sampleInit) { 11 SampleInitActivityBridge.onSampleLoaded(sampleInit); 12 }
Classes/CCSampleInit.h
cpp
1class CCSampleInit 2{ 3public: 4 const char* name = ""; 5 int valule = 0; 6}
Classes/CCSampleInit.cpp
cpp
1USING_NS_CC; 2CCSampleInit* CCSampleInit::create() 3{ 4 return new CCSampleInit(); 5}
Classes/SampleRequest.h
#include "cocos2d.h" class SampleRequestDelegate { public: virtual void onSampleLoaded(CCSampleInit* ccSampleInit) = 0; virtual void onSampleFailedToLoad() = 0;
Classes/jp_co_sample_SampleActivityBridge.cpp
extern "C" { JNIEXPORT void JNICALL Java_jp_co_sample_SampleActivityBridge_onSampleLoaded(JNIEnv *env, jclass clazz) { SampleRequestDelegate* listener = SampleRequest::getDelegate(); if (listener != NULL) { CCSampleInit* sampleInit = new CCSampleInit(); listener->onSampleLoaded(sampleInit); } }
実行したところ以下のようなint宣言されているようなエラーとなったのですが、こういうのは不可能なのでしょうか?
jni/../../../Classes/SampleRequest.h:17:22: note: virtual void SampleRequestDelegate::onSampleLoaded(int*) virtual void onSampleLoaded(CCSampleInit* sampleInit) = 0;
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。