No matching client found for package name ‘com.unity3d.player‘

2024年2月6日更新 

        使用Unity插件包方式接入(Unity方式),且必须使用EDM(ExternalDependencyManager),若已有ExternalDependencyManager文件夹(其他SDK也可能带有)则选用最新的即可。
        工程Assets- External Dependency Manager - Android Resolver - Settings 必须开启如下3个选项

这个GeneratedLocalRepo文件夹会在Assets- External Dependency Manager - Android Resolver - Resolve(或 Force Resolve)时动态生成,很关键,如果没有它将会报错FirebaseAppDll各种报错。

这些是Firebase导入各种插件包后的Dependencies依赖文件,EDM会根据这些文件生成mainTemplate.gradle,你可以在里面修改maven{ url 'xxx' }补充一些镜像url

例如上<repository>...</repository>,稳妥起见可以所有Dependencies.xml都补上这3行镜像url。

PlayerSettings - Player - Publishing Settings开启mainTemplate.gradle才能被EDM管理生成。

使用Assets - External Dependency Manager - Android Resolver - Force Resolve生成mainTemplate.gradle,需要手动调整内容。

成功Force Resolve后打开mainTemplate.gradle文件

// Android Resolver Repos Start
([rootProject] + (rootProject.subprojects as List)).each { project ->project.repositories {def unityProjectPath = $/file:///**DIR_UNITYPROJECT**/$.replace("\\", "/")maven {url "https://maven.google.com"}maven {url (unityProjectPath + "/Assets/GeneratedLocalRepo/Firebase/m2repository") // Assets/Firebase/Editor/AnalyticsDependencies.xml:21, Assets/Firebase/Editor/AppDependencies.xml:25, Assets/Firebase/Editor/CrashlyticsDependencies.xml:23}maven {url "https://maven.aliyun.com/repository/public" // Assets/Firebase/Editor/AnalyticsDependencies.xml:21, Assets/Firebase/Editor/AppDependencies.xml:25, Assets/Firebase/Editor/CrashlyticsDependencies.xml:23}maven {url "https://maven.aliyun.com/repository/google" // Assets/Firebase/Editor/AnalyticsDependencies.xml:21, Assets/Firebase/Editor/AppDependencies.xml:25, Assets/Firebase/Editor/CrashlyticsDependencies.xml:23}maven {url "https://maven.aliyun.com/repository/jcenter" // Assets/Firebase/Editor/AnalyticsDependencies.xml:21, Assets/Firebase/Editor/AppDependencies.xml:25, Assets/Firebase/Editor/CrashlyticsDependencies.xml:23}mavenLocal()mavenCentral()}
}
// Android Resolver Repos End

 修改后为如下:

// Android Resolver Repos Start
([rootProject] + (rootProject.subprojects as List)).each { project ->project.repositories {def unityProjectPath = $/file:///**DIR_UNITYPROJECT**/$.replace("\\", "/")maven {url "https://maven.aliyun.com/repository/public" // Assets/Firebase/Editor/AnalyticsDependencies.xml:21, Assets/Firebase/Editor/AppDependencies.xml:25, Assets/Firebase/Editor/CrashlyticsDependencies.xml:23}maven {url "https://maven.aliyun.com/repository/google" // Assets/Firebase/Editor/AnalyticsDependencies.xml:21, Assets/Firebase/Editor/AppDependencies.xml:25, Assets/Firebase/Editor/CrashlyticsDependencies.xml:23}maven {url "https://maven.aliyun.com/repository/jcenter" // Assets/Firebase/Editor/AnalyticsDependencies.xml:21, Assets/Firebase/Editor/AppDependencies.xml:25, Assets/Firebase/Editor/CrashlyticsDependencies.xml:23}maven {url (unityProjectPath + "/Assets/GeneratedLocalRepo/Firebase/m2repository") // Assets/Firebase/Editor/AnalyticsDependencies.xml:21, Assets/Firebase/Editor/AppDependencies.xml:25, Assets/Firebase/Editor/CrashlyticsDependencies.xml:23}        mavenLocal()mavenCentral()}
}
// Android Resolver Repos End

为什么要改动?因为EDM它默认生成的 maven {url "https://maven.google.com"} 国内是连不上这个地址的,所以直接删了它,使用镜像url,而且要调整到最前面。

镜像url可能会随着时间变更,这里只是使用阿里云的,如果打包卡死,那一定是这里镜像url问题了,卡死是连不上依赖资源地址导致的。

阿里云镜像仓库地址:

仓库服务

注意:修改mainTemplate.gradle之后就不要去操作Force Resolve(会被还原),操作Resolve是可以的。

实际上最终打包时都会Force Resolve(因为还是会被EDM添加了maven.google.com)所以我只能够强制让自己的生效,即删除

// Android Resolver Repos Start 以及 // Android Resolver Repos End

修改为如下:

([rootProject] + (rootProject.subprojects as List)).each { project ->project.repositories {def unityProjectPath = $/file:///**DIR_UNITYPROJECT**/$.replace("\\", "/")maven {url "https://maven.aliyun.com/repository/public" // Assets/Firebase/Editor/AnalyticsDependencies.xml:21, Assets/Firebase/Editor/AppDependencies.xml:25, Assets/Firebase/Editor/CrashlyticsDependencies.xml:23}maven {url "https://maven.aliyun.com/repository/google" // Assets/Firebase/Editor/AnalyticsDependencies.xml:21, Assets/Firebase/Editor/AppDependencies.xml:25, Assets/Firebase/Editor/CrashlyticsDependencies.xml:23}maven {url "https://maven.aliyun.com/repository/jcenter" // Assets/Firebase/Editor/AnalyticsDependencies.xml:21, Assets/Firebase/Editor/AppDependencies.xml:25, Assets/Firebase/Editor/CrashlyticsDependencies.xml:23}maven {url (unityProjectPath + "/Assets/GeneratedLocalRepo/Firebase/m2repository") // Assets/Firebase/Editor/AnalyticsDependencies.xml:21, Assets/Firebase/Editor/AppDependencies.xml:25, Assets/Firebase/Editor/CrashlyticsDependencies.xml:23}        mavenLocal()mavenCentral()}
}

你可以改后去Force Resolve发现,上面我们自己的这块没被// Android Resolver Repos Start 以及 // Android Resolver Repos End包含的代码块是不会被EDM替换的,而是它会重新生成一份在我们的下面,就结果而言生效的是我们那份优先。(哎...无语了都

可打开任务管理器点开Unity观察这Java(TM) Platform SE binary 的使用进度 如果都是0%,而且几秒都没变化就说明卡死了,如果CPU%使用率>0%都要耐心等它。

C#脚本相关坑:

类似这种每一个Firebase-XXx插件的Unity文档都会如此介绍,Firebase.FirebaseApp.CheckAndFixDependenciesAsync().ContinueWith(task =>函数会反复提及,在Unity里你只能调用一次!且所有初始化Firebase方法都要在task回调里进行。

出现上面那个报错原因就是调用了多次,都挪在一起就好了,统一一个脚本管理初始化。 


2024年2月5日更新

        必须使用Unity方式接入Unity项目!一句话解决所有问题。(真的别玩Android方式)

        大致这问题出现原因是我在Unity采用了Android方式接入Firebase,而Android接入实际上和Unity接入方式有配置上的不一样,我就是多做了几步操作如下。https://firebase.google.com/docs/android/setup?hl=zh-cn#java

        根级(项目级)Gradle文件 和 模块(应用级)Gradle文件 对应Unity的 baseProjectTemplate.gradle 以及 mainTemplate.gradle,分别对应地方加上如上内容,结果就是bug不断,因为Unity以前mainTemplate.gradle就是apply plugin: 'com.android.application',现在新版已经改为‘com.android.library’,因此就变的有点复杂不过我没注意到,就这样配进去了,打包就肯定出问题,Unity的application已经放置到了launcherTemplate.gradle。
        总结:不要试图在Unity使用Android接入配置方法,更深层的知识没搞懂前很难兼容处理好,最终就是彻底采用Unity方式或Android方式接入。
        实际上,我想Firebase即接入Unity插件,也接入Android(aar形式接入Unity打包的)其实也可以吧?将上方的配置转移到Android配置,单独作为提供给第三方的,而Unity则是完全使用Unity插件方式接入Firebase即可。(待测试)

Warning: Mapping new ns http://schemas.android.com/repository/android/common/02 to old ns http://schemas.android.com/repository/android/common/01
Warning: Mapping new ns http://schemas.android.com/repository/android/generic/02 to old ns http://schemas.android.com/repository/android/generic/01
Warning: Mapping new ns http://schemas.android.com/sdk/android/repo/addon2/02 to old ns http://schemas.android.com/sdk/android/repo/addon2/01
Warning: Mapping new ns http://schemas.android.com/sdk/android/repo/repository2/02 to old ns http://schemas.android.com/sdk/android/repo/repository2/01
Warning: Mapping new ns http://schemas.android.com/sdk/android/repo/sys-img2/02 to old ns http://schemas.android.com/sdk/android/repo/sys-img2/01

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':unityLibrary:processReleaseGoogleServices'.
> No matching client found for package name 'com.unity3d.player'

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 3s
Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8

UnityEngine.GUIUtility:ProcessEvent (int,intptr)
 

一、根本原因:google-services.json里的package_name和包签名不一致

"client": [{"client_info": {"mobilesdk_app_id": ...,"android_client_info": {"package_name": "填对包签名"}}

二、一般这样就好了,但是我是Unity版本的变种问题,Unity需要将google-services.json放到对应Assets/Plugins/Android文件夹下,然后Firebase会自动生成一个到StreamingAssets下,最终也是采用StreamingAssets下的作为配置读取。

 注意:Firebase 会查找您添加到 Unity 项目的移动平台 Firebase 配置文件(GoogleService-Info.plist 或 google-services.json)。然后,Firebase 会基于移动平台配置文件自动生成桌面平台 Firebase 配置文件 (google-services-desktop.json)。此桌面配置文件包含您在 Firebase 控制台设置工作流中输入的 Unity 项目 ID。此文件将您的应用与 Firebase 项目关联。

如果编辑器找不到桌面配置文件,请检查 StreamingAssets 目录是否存在以及其中是否包含桌面配置文件。

也就是说你去工程里搜google-services-desktop.json,把它重新生成一遍就好了,也就是删了它,重新运行Unity就会自动生成,生成出的package_name就是你最新的包签名了。(真的是...

三、而且google-services.json依然是需要的,而且它要正确地拷贝到打包出的安卓工程,需要在mainTemplate.gradle末尾添加(一定保证末尾)

task copyJsonFile {def unityProjectPath = $/file:///**DIR_UNITYPROJECT**/$.replace("\\", "/")copy {		delete("google-services.json")from(unityProjectPath + '/Assets/Plugins/Android/')into('./')include("google-services.json")}
}
preBuild.dependsOn copyJsonFile

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Qt网络编程-写一个简单的网络调试助手

环境 Windows&#xff1a;Qt5.15.2&#xff08;VS2022&#xff09; Linux&#xff1a;Qt5.12.12&#xff08;gcc) 源代码 TCP服务器 头文件&#xff1a; #ifndef TCPSERVERWIDGET_H #define TCPSERVERWIDGET_H #include <QWidget> namespace Ui { class TCPServerW…

Linux文件和目录管理

目录基础 Linux操作系统以目录的方式来组织和管理系统中的所有文件。所谓的目录&#xff0c;就是将所有文件的说明信息采用树状结构组织起来。每个目录节点之下会有文件和子目录。 所有一切都从 ‘根’ 开始&#xff0c;用 ‘/’ 代表, 并且延伸到子目录。 bin&#xff1a;B…

【RT-DETR有效改进】利用SENetV1重构化网络结构 (ILSVRC冠军得主)

👑欢迎大家订阅本专栏,一起学习RT-DETR👑 一、本文介绍 本文给大家带来的改进机制是SENet(Squeeze-and-Excitation Networks)其是一种通过调整卷积网络中的通道关系来提升性能的网络结构。SENet并不是一个独立的网络模型,而是一个可以和现有的任何一个模型相结合…

R语言学习case10:ggplot基础画图Parallel Coordinate Plot 平行坐标图

step1: 导入ggplot2库文件 library(ggplot2)step2&#xff1a;带入自带的iris数据集 iris <- datasets::irisstep3&#xff1a;查看数据信息 dim(iris)维度为 [150,5] head(iris)查看数据前6行的信息 step4&#xff1a;利用ggplot工具包绘图 plot5 <- ggparcoord(…

【ArcGIS微课1000例】0101:删除冗余节点或折点

文章目录 一、实验描述二、实验数据三、实验过程1. 手动删除2. 简化线工具四、注意事项一、实验描述 矢量数据获取通常来源于手动或者ArcScan自动采集,其基本存储方式就是记录每个要素的点坐标,如点要素就是一个坐标、线要素由多个点要素连接形成。当某段线要素被过多的节点…

单片机学习笔记---蜂鸣器工作原理

目录 蜂鸣器介绍 蜂鸣器的驱动方式 ULN2003D芯片工作原理 实战预备知识&#xff1a;基础乐理 音名的分组 全音和半音的关系 音高的表示 五线谱中的符号定义 简谱上的符号定义 C调音符与频率对照表 相关计算 蜂鸣器介绍 蜂鸣器是一种将电信号转换为声音信号的器件&a…

SaperaCamExpert(相机专家)中文使用指南

参考&#xff1a;SaperaCamExpert中文使用指南.PDF 文章目录 软件介绍安装首次打开资源占用率功能主界面布局菜单栏FileViewPre-Processing&#xff1a;预处理 Tools&#xff1a; 快捷键&#xff1a;新建&#xff1b;打开&#xff1b;保存&#xff1b;帮助Device窗体属性树图像…

Bytebase 签约 Vianova,助力欧洲城市交通智能平台中 Snowflake 和 PG 的变更自动化及版本控制

在数字化发展的浪潮中&#xff0c;自动化数据库变更管理成为提升产品上线效率、降低人为失误风险的关键工具&#xff0c;同时促进流程的一致性与标准化&#xff0c;确保合规性和变更的可追溯性。近日&#xff0c;数据库 DevOps 团队协同管理工具 Bytebase 签约欧洲交通数据管理…

网站被攻击有什么办法呢?

最近&#xff0c;德迅云安全遇到不少网站用户遇到攻击问题&#xff0c;来咨询安全解决方案。目前在所有的网络攻击方式中&#xff0c;DDoS是最常见&#xff0c;也是最高频的攻击方式之一。不少用户网站上线后&#xff0c;经常会遭受到攻击的困扰。有些攻击持续时间比较短影响较…

股票均线的使用方法和实战技术,看涨看空的均线形态与案例教学

一、教程描述 本套教程讲解了14种均线的特殊形态&#xff0c;通过直观图形以及大量案例的教学&#xff0c;将深奥、繁琐的均线变得生动与具体&#xff0c;广大投资者在认真学习以后&#xff0c;可以学会均线的使用方法&#xff0c;掌握最强的均线应用实战技术。本套教程不仅适…

Electron+Vue实现仿网易云音乐实战

前言 这个项目是我跟着官方文档的那个Electron入门教程大致跑了一遍,了解了下Electron开发流程之后的实战项目,所以中间应该是会有很多写法不是很规范,安全性有可能也没考虑到,可实现的各种api也不是很了解,适合初学者。 必须感谢 https://github.com/Binaryify/NeteaseC…

Postman接口与压力测试实例

Postman是一款功能强大的网页调试与发送网页HTTP请求的Chrome插件。它提供功能强大的 Web API & HTTP 请求调试。 1、环境变量和全局变量设置 环境变量可以使用在以下地方&#xff1a; URLURL paramsHeader valuesform-data/url-encoded valuesRaw body contentHelper fi…

工信部颁发的《计算机视觉处理设计开发工程师》中级证书

计算机视觉&#xff08;Computer Vision&#xff09;是一门研究如何让计算机能够理解和分析数字图像或视频的学科。简单来说&#xff0c;计算机视觉的目标是让计算机能够像人类一样对视觉信息进行处理和理解。为实现这个目标&#xff0c;计算机视觉结合了图像处理、机器学习、模…

[VulnHub靶机渗透] Misdirection: 1

&#x1f36c; 博主介绍&#x1f468;‍&#x1f393; 博主介绍&#xff1a;大家好&#xff0c;我是 hacker-routing &#xff0c;很高兴认识大家~ ✨主攻领域&#xff1a;【渗透领域】【应急响应】 【python】 【VulnHub靶场复现】【面试分析】 &#x1f389;点赞➕评论➕收藏…

关于数字图像处理考试

我们学校这门科目是半学期就完结哦&#xff0c;同学们学习的时候要注意时间哦。 选择题不用管&#xff0c;到时候会有各种版本的复习资料的。 以下这些东西可能会是大题的重点&#xff1a; 我根据平时代码总结的&#xff0c;供参考 基本操作&#xff1a; 1.读图&#xff1a;…

HTTP和HTTPS区别!

http 是我们几乎天天都要打交道的东西&#xff0c;相关知识点有点多&#xff0c;所以也有不少面试必问的点&#xff0c;这里做了一些整理&#xff0c;帮且大家树立完整的 http 知识体系&#xff0c;对面试官说 so easy HTTP 的特点和缺点 特点&#xff1a;无连接、无状态、灵…

【Git版本控制 01】基本操作

目录 一、初始配置 二、添加文件 三、查看日志 四、修改文件 五、版本回退 六、撤销修改 七、删除文件 一、初始配置 Git版本控制器&#xff1a;记录每次的修改以及版本迭代的一个管理系统。 # 初始化本地仓库&#xff1a;git init(base) [rootlocalhost gitcode]# gi…

房屋租赁系统的Java实战开发之旅

✍✍计算机编程指导师 ⭐⭐个人介绍&#xff1a;自己非常喜欢研究技术问题&#xff01;专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目&#xff1a;有源码或者技术上的问题欢迎在评论区一起讨论交流&#xff01; ⚡⚡ Java实战 |…

【C语言期末】商品管理系统

本文资源&#xff1a;https://download.csdn.net/download/weixin_47040861/88820155 1.题目要求 商品管理系统 商品信息包括&#xff1a;包括编号、类别、名称、价格、折扣比例、生产时间 、存货数量等要求&#xff1a;1、信息首先保存在文件中&#xff0c;然后打开文件进行…

用友U8 Cloud ReportDetailDataQuery SQL注入漏洞复现(QVD-2023-47860)

0x01 产品简介 用友U8 Cloud 提供企业级云ERP整体解决方案,全面支持多组织业务协同,实现企业互联网资源连接。 U8 Cloud 亦是亚太地区成长型企业最广泛采用的云解决方案。 0x02 漏洞概述 用友U8 cloud ReportDetailDataQuery 接口处存在SQL注入漏洞,攻击者未经授权可以访…