Unity接入Android SDK报错记录

在Android Studio3.4 报错内容:

Can't create handler inside thread that has not called Looper.prepareUnity: AndroidJavaException: java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare()
at UnityEngine.AndroidJNISafe.CheckException () [0x00000] in <filename unknown>:0
at UnityEngine.AndroidJNISafe.CallVoidMethod (IntPtr obj, IntPtr methodID, UnityEngine.jvalue[] args) [0x00000] in <filename unknown>:0
at UnityEngine.AndroidJavaObject._Call (System.String methodName, System.Object[] args) [0x00000] in <filename unknown>:0
at UnityEngine.AndroidJavaObject.Call (System.String methodName, System.Object[] args) [0x00000] in <filename unknown>:0
at AndroidSdkImp.Login () [0x00000] in <filename unknown>:0
at XEnterScript.OnLoginFastGame () [0x00000] in <filename unknown>:0
at EventDelegate.Execute () [0x00000] in <filename unknown>:0
at EventDelegate.Execute (System.Collections.Generic.List`1 list) [0x00000] in <filename unknown>:0
at UIButton.OnClick () [0x00000] in <filename unknown>:0
UnityEngine.GameObject:SendMessage(String, Object, SendMessageOpt

例:
错误原因:
直接使用Unity调用第三方接口了

    public void Login() {
        HuyaBerry.instance().login(MainActivity.this);
    }

解决方式:
创建一个UI线程调用

    public void Login() { 
        this.runOnUiThread(new Runnable() {
            public void run() {
                HuyaBerry.instance().login(MainActivity.this);
            }
        });
    }

//TODO C#中被using(){}包裹的变量不能在using外使用。否则会闪退。
错误例子:

            AndroidJavaObject CurrentActivity;
            using (var JavaClass = new AndroidJavaClass("com.unity3d.player.UnityPlayer"))
            {
                 CurrentActivity = JavaClass.GetStatic<AndroidJavaObject>("currentActivity");
                if (CurrentActivity != null)
                {
                    CurrentActivity.Call("Test1", "77777"); 
                }
            }
            CurrentActivity.Call("Test2");//不要在 using 使用
            CurrentActivity.CallStatic("Test3");
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值