问题一 :报错“The method InitSdk must be in the main thread!”。
原因:一般SDK的初始化方法必须在主线程,如果不在主线程,则会报如上错误。
解决方法:使用runOnUiThread方法,强制其在UI主线程执行。
//以VivoSDK为例
MyActivity.this.runOnUiThread(new Runnable()
{
public void run()
{
try
{
VivoUnionSDK.initSdk(MyActivity.this, Config.APP_ID, false);
UnityPlayer.UnitySendMessage(Config.ObjectName, Config.InitSuccess, Config.Success);
}
catch ( Exception e)
{
UnityPlayer.UnitySendMessage(Config.ObjectName,Config.InitFailure,e.toString());
return;
}
}
问题二:确定方法InitSDK(或其他)方法存在的情况下,Unity调用Android方法报错“No-non static method found InitSdk”。
原因:Unity在调用Android方法时,会优先寻找普通方法,如果找不到会再去找静态方法。但是确定方法