事情大概是一周前。老板让接入第三方sdk。然后我就用 cocos 封装好的 jni 进行交互。C++ 调用 java 中非静态函数时,要先找到静态的对象。 我就创建了一个 private static AppActivity sObj = null; 。之后奇怪的事就来了。在eclipse 下调试的时候,各种报错。最重要的两点如下:
1 E/SysUtils(24229): ApplicationContext is null in ApplicationStatus
2 E/libEGL(24229): validate_display:255 error 3008 (EGL_BAD_DISPLAY)
E/ActivityThread(24229): Failed to find provider info for com.google.settings
求大神指点。
AppActivity 修改如下:
package org.cocos2dx.cpp;
import org.cocos2dx.lib.Cocos2dxActivity;
import android.os.Bundle;
import android.os.SystemClock;
//import android.os.Handler;
public class AppActivity extends Cocos2dxActivity
{
private static AppActivity sObj = null;
MyHandler mPayHandler = new MyHandler();
private static String merchantId = "aaaaaa";
private static String payAppId = "aaaaa";
private static String cpChannelId = "CP";
private String passW = "aaaaa";
private PayApplication mPayApp = new PayApplication();
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
mPayApp.a(getApplicationContext());
SdkPayServer.setPayStartDataInfo(AppActivity.this, merchantId, payAppId, cpChannelId);
int ret = SdkPayServer.getInstance ().initSdkPayServer ();
if(ret==0)
System.out.println("AppActivity initSdkPayServer succeed"+" : " + ret);
else
System.out.println("AppActivity initSdkPayServer failed"+" : " + ret);
sObj = AppActivity.this;
}
public static Object getObj()
{
System.out.println("AppActivity getObj succeed");
return sObj;
}
public static void initJavaSDK()
{
}
public static void endJavaSDK()
{
System.out.println("AppActivity endJavaSDK succeed");
SdkPayServer.getInstance ().unInitSdkPayServer ();
}
public void smsJavaSDK( String data )
{
int ret = SdkPayServer.getInstance().startSdkSmsPay(AppActivity.this, mPayHandler, passW, payAppId + "-" + SystemClock.elapsedRealtime(), cpChannelId, data,null);
if(ret==0)
System.out.println("AppActivity startSdkSmsPay succeed" + " : " + ret+ " " + payAppId + "-" + SystemClock.elapsedRealtime());
else
System.out.println("AppActivity startSdkSmsPay failed"+" : " + ret + " " + payAppId + "-" + SystemClock.elapsedRealtime());
}
}
拜谢!!!!