지칩니다... 도와주세요...몇일 째 똑같은 코드앞에서 처절하게 무릎끓고있네요.... ㅠ 저는 아이폰 개발자인데 자바가 너무 안되서 그러는지... 정말 이유를 모르겠습니다. ㅠㅠ
public class BBCarom_cocos2dx extends Cocos2dxActivity{
private Cocos2dxGLSurfaceView mGLView;
public static Object activity;
public static Object cppCall_logsth(){
Log.i("cppCall", "return activity~~~~!!!");
return activity;
}
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setVolumeControlStream(AudioManager.STREAM_MUSIC);
// get the packageName,it's used to set the resource path
String packageName = getApplication().getPackageName();
super.setPackageName(packageName);
setContentView(R.layout.game_demo);
mGLView = (Cocos2dxGLSurfaceView) findViewById(R.id.game_gl_surfaceview);
mGLView.setTextField((Cocos2dxEditText)findViewById(R.id.textField));
activity = this;
}
public void test()
{
Log.i("cppCall", "test~~~~!!!");
}
public void ShowStandardAlert()
{
Log.i("cppCall", "Alert start~~~~!!!");
final AlertDialog.Builder builder=new AlertDialog.Builder(this);
builder.setTitle("BB 당구 평가하기");
builder.setMessage("Thanks for playing BB Carom, I want to you guys rate my app ^^ thanks.");
builder.setIcon(android.R.drawable.ic_dialog_email);
builder.setPositiveButton("BB 당구\n평가하기", new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Intent market = new Intent(Intent.ACTION_VIEW, Uri.parse("market://details?id=net.daum.android.daum"));
startActivity(market);
}
});
builder.setNegativeButton("취소", new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
builder.setNeutralButton("e-mail\n보내기", new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Uri uri = Uri.parse("mailto:bbrightdev@gmail.com");
Intent it = new Intent(Intent.ACTION_SENDTO, uri);
startActivity(it);
}
});
builder.show();
}
...
JniMethodInfo minfo;
jobject jobj;
if(JniHelper::getStaticMethodInfo(minfo, CLASS_OPEN_NAME, "cppCall_logsth", "()Ljava/lang/Object;"))
{
jobj = minfo.env->CallStaticObjectMethod(minfo.classID, minfo.methodID);
if(JniHelper::getMethodInfo(minfo, CLASS_OPEN_NAME, "test", "()V"))
{
CCLog("JNI--after obj");
minfo.env->CallVoidMethod(jobj, minfo.methodID);
}
}
미국 개발자에게 메일보내서 답변 받아 해결했습니다................... 몇일만에....
봐주셔서 감사합니다. 아래는 해결책인데 왜 해결됫는지는 모릅니다....--;;
public class BBCarom_cocos2dx extends Cocos2dxActivity{
private Cocos2dxGLSurfaceView mGLView;
static public Handler handler;
public static Object activity; //inited after onCreated
public static Object cppCall_logsth(){
Log.i("cppCall", "return activity~~~~!!!");
return activity;
}
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setVolumeControlStream(AudioManager.STREAM_MUSIC);
// get the packageName,it's used to set the resource path
String packageName = getApplication().getPackageName();
super.setPackageName(packageName);
setContentView(R.layout.game_demo);
mGLView = (Cocos2dxGLSurfaceView) findViewById(R.id.game_gl_surfaceview);
mGLView.setTextField((Cocos2dxEditText)findViewById(R.id.textField));
activity = this;
handler = new Handler()
{
public void handleMessage(Message msg)
{
if (msg.what == 0)
ShowStandardAlert();
}
};
}
public void test()
{
Log.i("cppCall", "test~~~~!!!");
handler.sendEmptyMessage( 0 );
}
public void ShowStandardAlert()
{
Log.i("cppCall", "Alert start~~~~!!!");
final AlertDialog.Builder builder=new AlertDialog.Builder(this);