美文网首页
UNITY 接入QQ登录SDK时遇到的坑 2020.9.17

UNITY 接入QQ登录SDK时遇到的坑 2020.9.17

作者: 素白的霏丶 | 来源:发表于2020-09-15 19:44 被阅读0次

    UNITY版本 2019.4.2f
    AS版本 6.0+
    真机环境 小米 Android 9.0

    参考链接
    https://www.jianshu.com/p/4882e67358d3
    https://blog.csdn.net/qq_30678451/article/details/100549651
    https://answer.uwa4d.com/question/5f1e9b0e0a39f3746f85a7ed
    https://blog.csdn.net/qq_42461824/article/details/105301843
    https://zhuanlan.zhihu.com/p/140871391
    https://blog.csdn.net/u011134889/article/details/100575177
    https://docs.unity3d.com/es/current/Manual/android-manifest.html
    安卓9.0出现的问题
    https://www.sohu.com/a/325961334_671494

    待解决
    引入QQsdk的FileProvider配置时 会出现xml找不到解析类的情况
    https://wiki.connect.qq.com/%E5%88%86%E4%BA%AB%E5%8A%9F%E8%83%BD%E5%AD%98%E5%82%A8%E6%9D%83%E9%99%90%E9%80%82%E9%85%8D

    > 按照视频所述 整个流程为:
    1、新建空工程 再新建模块 删除布局文件 导入unity jar包
    2、复制app中的xml到模块中 添加meta 标识unity
    <meta-data android:name="unityplayer.UnityActivity" android:value="true"/>
    3、修改MainActivity 的继承 完善安卓底层逻辑
    4、AAR中的xml不需要label和icon等配置 也不需要更改包名
    5、AAR中的libs需要修改
    6、总的xml需要和unity保持一致 分的xml代表aar中的文件 不需要更改
    unity2019.4 操作中 提示错误 需要替换标签,按照提示修改没有成功。

    经过摸索得出最终解决方案为:

    1. 新建模块为Android Library 完善逻辑
    2. 导入aar 删除启动activity 及lib下unityclass并将自己的jar从aar根目录下导入
    3. aar中的包名不需要和unity中的包名保持一致 如果一致 会有config文件错误
    4. xml中加入android:exported=“true” 待测试
    5. 需要自定义acitivity 不然无法执行MA中的ONCREAT 如果不自定义acitivity 则AAR相当于后端
    6. 主MA配置方法 untiy导出一个Android工程 修改其中的 MA 为 扩展的MA

    qq第三方登录,在小米的9.0手机上崩溃
    真机测试时 报: java.lang.NoClassDefFoundError: Failed resolution of: Lorg/apache/http/conn/scheme/SchemeRegistry;

    解决方法 : 在AndroidManifest.xml文件的application标签里面加入
         <!--可以直接将Apache HTTP客户端的相关类打包进APK中。-->
          <uses-library android:name="org.apache.http.legacy" android:required="false" />
    
    android调用unity 第一个参数 游戏物体 第二参数 方法名 第三个参数 传递的参数
    UnityPlayer.UnitySendMessage("Canvas","ChangeColor","");
    
    unity调用Android 包名.类名 获取类 然后调用静态方法
    m_gameHelperJavaClass = new AndroidJavaClass("com.ash.testlibrary.helper");
    ans = m_gameHelperJavaClass.CallStatic<int>("add", 1, 2);
    
    获取MA的写法
     //固定写法
    AndroidJavaClass jc = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
    AndroidJavaObject jo = jc.GetStativ<AndroidJavaObject>("currentActivity");
    

    相关文章

      网友评论

          本文标题:UNITY 接入QQ登录SDK时遇到的坑 2020.9.17

          本文链接:https://www.haomeiwen.com/subject/aubfyktx.html