欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Unity 接入安卓渠道SDK问题总结

程序员文章站 2022-03-03 22:07:37
问题一 :报错“The method InitSdk must be in the main thread!”。原因:一般SDK的初始化方法必须在主线程,如果不在主线程,则会报如上错误。解决方法:使用runOnUiThread方法,强制其在UI主线程执行。//以VivoSDK为例MyActivity.this.runOnUiThread(new Runnable(){ public void run() { try { ....

问题一 :报错“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方法时,会优先寻找普通方法,如果找不到会再去找静态方法。但是确定方法存在的时候,为什么还是报错,是因为Android的Jar有关类库和xml文件所在的Plugins文件夹,必须在Unity的Assets根目录下,否则可能存在无法找到的情况。

解决方法:Plugins移置Assets目录下。

 

问题三:游戏为横屏,SDK为竖屏的情况下,退出SDK登录,返回横屏游戏崩溃。

原因:因为游戏不支持横屏或者竖屏,切换可能导致崩溃。

解决方法:SDK一般都支持横竖屏,因此可以强制SDK根据游戏的横屏或者竖屏,在AndroidManifest.xml文件中配置

android:screenOrientation="landscape"属性(这个是强制横屏)

 

问题四:使用安卓模拟器无法成功打开SDK,或者某些手机无法成功打开SDK。

原因:系统原因

解决方法:使用对应渠道的手机去测试对应SDK。否则可能存在未知问题。

 

问题五:按照网上教程,Android studio仍然无法打出Jar包。

原因:最新版本的Android studio的Jar目录发生改变。

解决方法:新版本Jar包在bulid/intermediates/packaged-classes目录下

 

问题六:使用AndroidManifest.xml配置文件之后,我的应用图标变成系统默认的了。

原因:AndroidManifest.xml文件会使Unity配置的Icon失效。

解决方法:在AndroidManifest.xml配置文件中加入

android:icon="@drawable/app_icon"即可。

 

本文地址:https://blog.csdn.net/shazhiwutx/article/details/107401191

相关标签: UNITY SDK Android