【避坑指南】Unity3D接入外网SDK笔记(GooglePlay/FaceBook/AppsFlyer)

news2024/11/27 22:21:31

这段时间折腾了一下获取归因数据相关的SDK,遇到非常多奇奇怪挂的报错,在此记录一下。

准备资源

  1. Unity的Jar包解析器,下面提及的SDK都需要工具解析并下载依赖 https://github.com/googlesamples/unity-jar-resolver
  2. AndroidStudio,非常强大的工具,开发Android少不了,里面的SDKManager非常实用
    https://developer.android.com/studio
  3. GooglePlay
    适用于Unity的GooglePlaySDK(current-build目录下有个unitypackage):https://github.com/playgameservices/play-games-plugin-for-unity
    接入指南:https://developer.android.com/games/pgs/unity/unity-start?hl=zh-cn
  4. FaceBook
    适用于Unity的FaceBookSDK: https://developers.facebook.com/docs/unity/?locale=zh_CN
    接入指南:https://developers.facebook.com/docs/unity/gettingstarted
  5. AppsFlyer
    适用于Unity的AppsFlyerSDK(根目录下有个unitypackage):https://github.com/AppsFlyerSDK/appsflyer-unity-plugin
    接入指南:https://support.appsflyer.com/hc/zh-cn/articles/360007314277
  6. adb,安卓调试神器
    Windows版本:https://dl.google.com/android/repository/platform-tools-latest-windows.zip
    Mac版本:https://dl.google.com/android/repository/platform-tools-latest-darwin.zip
    Linux版本:https://dl.google.com/android/repository/platform-tools-latest-linux.zip
    然后配置一下环境变量:https://blog.csdn.net/x2584179909/article/details/108319973
    在cmd输入 adb logcat 即可,只看error级别的打印可以输入 adb logcat *:E

报错以及解决方案

  1. 解析Jar包出错

“Assembly ‘Assets/ExternalDependencyManager/Editor/Google.VersionHandlerImpl_v1.2.156.dll’ will not be loaded due to errors: Assembly name’Google.VersionHandlerImpl’ does not match file name’Google.VersionHandlerImpl_v1.2.156’ Assembly’Assets/ExternalDependencyManager/Editor/1.2.175/Google.IOSResolver.dll’will not be loaded due to errors: Unable to resolve reference ‘UnityEditor.iOS.Extensions.Xcode’. Is the assembly missing or incompatible with the current platform? Reference validation can be disabled in the Plugin Inspector.”
在这里插入图片描述

下载一个新版的ExternalDependencyManager工具包(版本1.2.176),详情看油管视频: https://www.youtube.com/watch?v=z4ERv0oLJXc

  1. 打包出错,提示Gradle构建失败,显示AAPT2啥的

A failure occurred while executing com.android.build.gradle.internal.tasks.Workers$ActionFacade
AAPT2 aapt2-4.1.0-6503028-windows Daemon #0: Unexpected error during link, attempting to stop daemon.
This should not happen under normal circumstances, please file an issue if it does.

一般是因为JDK、SDK、NDK、Gradle在Unity中配置不正确或者版本太低引起的,建议 JDK和Grade使用Unity内置的版本,而SDK或者NDK使用自己下载好的高版本(AndroidStudio的SDKManager可以很方便下载到)。

  1. 解析Jar包卡住了
    在这里插入图片描述
    如果Assets/Plugins/Android目录下没有出现一大堆jar包,可以断定解析Jar包报错了,这个报错比较复杂,检查一下有没有解决本博客提及的其他报错问题。最简单的方法就是新建一个工程,重新导入所有SDK。

  2. 提示循环导入

An infinite import loop has been detected. The following Assets were imported multiple times, but no changes to them have been detected. Please check if any custom code is trying to import them:

关闭Unity,删除Unity工程的Library目录,重新打开工程。
原因可能是解析Jar包解析到一半,没删掉旧的文件又重新开始解析。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/724045.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

微信小程序基础库的介绍与更改

一、什么是基础库? 1、基础库是小程序运行的必要环境,我们的开发主要就是面向基础库开发的。基础库封装了微信和手机的能力并提供给小程序使用,我们使用基础库提供的组件和API开发起来非常的方便。 2、基础库存在于我们的微信客户端中&…

骑行,怎么样才能安全的下坡?

大家好,今天我们来聊聊自行车运动中的一个重要话题:如何安全地骑行下坡? 首先,我们要明白,安全下坡的秘诀在于控制。一是速度的控制,二是自身姿势的控制。就像一只灵活的狐狸,既要控制好自己的速…

Excel表格套用格式后分类汇总用不了解决方法之一

表格套用格式选择表格后分类汇总显示灰色不可用,如下图: 解决方法之一:右键-表格-转为区域,确定

如何部署LVS负载均衡集群(NAT模式)

目录 一、集群 负载均衡集群(Load Balance Cluster) 高可用集群(High Availability Cluster) 高性能运算集群(High Performance Computer Cluster) 二、负载均衡工作模式 VIP地址特性(虚拟…

剑指offer(C++)-JZ40:最小的K个数(算法-排序)

作者:翟天保Steven 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 题目描述: 给定一个长度为 n 的可能有重复值的数组,找出其中不去重的最小的 k 个数。例如数组元素是4,5,…

1.1 熟悉x64dbg调试器

x64dbg 是一款开源、免费、功能强大的动态反汇编调试器,它能够在Windows平台上进行应用程序的反汇编、调试和分析工作。与传统的调试器如Ollydbg相比,x64dbg调试器的出现填补了Ollydbg等传统调试器的不足,为反汇编调试工作提供了更高效、更可…

Python 中的 JSON 操作:简单、高效的数据交换格式

目录 1. JSON 数据格式 2. Python 操作 JSON 文件 2.1 JSON 反序列化为 Python 对象 2.2 Python 序列化为 JSON 3 工作中的常见场景 3.1 网络请求和响应 服务器端(Python): 客户端(JavaScript): 3…

5G三防平板电脑有哪些功能与特点

随着科技的不断进步,平板电脑已经成为许多人生活中必不可少的设备之一。而随着5G技术的全面普及,5G三防平板电脑也应运而生。这些平板电脑集成了内置高通八核处理器搭配Adreno GPU,搭载全新Android 11操作系统,以及提供多应用切换…

docker-compose实现微服务jar+mysql的容器服务发布(经典版)

一 安装mysql服务 1.1 拉取镜像 1.拉取: docker pull mysql:5.7.29 2.查看镜像: docker images 1.2 在宿主机创建文件存储mysql 1.创建映射目录:mysql-c5 在/root/export/dockertest 目录下,mkdir -p mysql-c5 &#…

Django proxy_view代理后端

某些需求下,需要通过Django代理后端,比如开发celery定时任务时候,需要代理后端的flower,代理后端可以直接使用Django自带的授权,方便权限控制 具体操作如下 1.安装 django-proxy 包,进行代理 pip install …

LVS负载均衡集群(DR)

目录 1.数据包流向 2.通信遇到的问题 1.ARP广播 导致所有节点服务器和调度器的VIP响应 2.VIP的调度器失效 3.案例 1. 配置负载调度器 2.部署共享存储 3. 配置节点服务器(这里是两台) 1.数据包流向 1.客户端发送请求到负载均衡器 请求的数据报文到达内核空间 2.负载均…

改进 Elastic Stack 中的信息检索:引入 Elastic Learned Sparse Encoder,我们的新检索模型

作者:Thomas Veasey,Quentin Herreros 在本博客中,我们讨论了我们一直在使用预先训练的语言模型增强 Elastic 开箱即用检索功能所做的工作。 在本系列的上一篇博客文章中,我们讨论了在零样本设置中应用密集模型进行检索的一些挑战…

全网最细,接口自动化测试hook机制使用详细,进阶高级...

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 requests 库只支持…

Sa-Token,一款更加轻量的权限认证框架

今天给大家介绍一个轻量级 Java 权限认证框架,我们之前一直采用最多的鉴权框架是OAuth2.0或者SpringSecurity,但是两者的配置都相当复杂,学习成本也非常高,所以我一直在试图寻找更好的解决办法,这几天在搭建权限体系平…

密码学学习笔记(五):Hash Functions - 哈希函数1

简介 什么是密码学中的哈希函数? 哈希函数是一种快速算法,它接受任何长度的输入,并产生一个固定长度的随机输出,称为摘要(digest),比如: MD4, MD5: 128-bit output (broken) •SHA-1: 160-bit output (b…

Infinite Zoom 丝滑循环小视频生成方法

使用Infinite Zoom插件在Stable Diffusion中可以制作无限缩放效果视频的过程。 文章目录 插件安装插件功能Main选项卡Video选项卡OutpaintPost process 插件使用 插件安装 在Stable-Diffusion-webui安装Infinite Zoom插件。启动Stable-Diffusion-webui,选择扩展-从…

使用css的:before属性在文字前加短竖线

有时候我们需要在文字或者标题前加个短竖线&#xff0c;有的人会使用 border 来模拟一个竖线&#xff0c;其实大可不必&#xff0c;我们可以利用元素的 :before 属性来实现&#xff0c;效果如下&#xff1a; 具体的代码如下&#xff0c; HTML&#xff1a; <span class&quo…

【计算机网络】第 1 课 - 数据的三种交换方式

欢迎来到博主 Apeiron 的博客&#xff0c;祝您旅程愉快 &#xff01; 时止则止&#xff0c;时行则行。动静不失其时&#xff0c;其道光明。 目录 1、缘起 2、电路交换 3、分组交换 4、三种交换方式的对比 4.1、电路交换优点 4.2、电路交换缺点 4.3、报文交换优点 4.4、…

【抽象拓扑排序】ABC216 D

D - Pair of Balls (atcoder.jp) 题意&#xff1a; 有2*n个球&#xff0c;每个球涂n种颜色&#xff0c;每种颜色恰好涂两个球&#xff0c;把这些球放进m个栈里&#xff0c;每次操作可以弹出两个相同颜色的球&#xff0c;问是否存在方案使得将所有栈清空 思路&#xff1a; 注…

Day44——动态规划part6

完全背包 private static void testCompletePack(){int[] weight {1, 3, 4};int[] value {15, 20, 30};int bagWeight 4;int[] dp new int[bagWeight 1];for (int i 0; i < weight.length; i){ // 遍历物品for (int j weight[i]; j < bagWeight; j){ // 遍历背包…