Cocos Creator3.8.2 麻烦问一下关于原生Android build.gradle文件导入依赖库执行顺序的问题

我先贴出2份Project(项目根目录)/build.gradle的文件,
一份是Native/project/build.gradle,这份文件简称 文件A

一份是build/project/build.gradle,这份文件简称 文件B

我在app/build.gradle中,需要应用firebase插件,

各位大佬,麻烦问下在Cocos Creator3.8.2中,原生Android中,我想实现在文件A中引入我的firebase库文件,不想在文件B引入,因为文件B是在build目录下,不会上传git仓库,不能多人协作和不能实现git actions集成环境,这个要怎么修改呢?因为我如果把文件B引入的文件迁移到文件A中,会导致同步build.gradle找不到对应的库报错。

我尝试过,apply from: NATIVE_DIR + “/build.gradle”
把这个放在文件B中的最上层,也不行,同步gradle还是报错,放在buildscript{这个里面也是报错},
放在下层还是报错,我也添加了日志输出,目前是文件A先执行,在执行文件B,但是同步文件gradle还是会报错,找不到对应库。

我目前实现的方式

我是在copy文件到buildm目录,

然后在这里同步,打包。这样感觉不方便

所以,想麻烦问下,这个要怎么处理呢,我目前只能是用脚本来copy到我的build目录下,暂时解决了,但是感觉这样不太方便,还是想的是,所有的第三方库放在文件A中,文件B即build目录下,不要去添加任何东西。主要是要使用github actions构建

1赞

如果你是深耕Android平台,比如后面会出n个渠道包,接n个sdk,我建议你先将以下几个目录的内容

  • build/
  • native/common/
  • native/android/

先弄成一个Android工程,放到 assets 同级,比如

  • assets/
  • AndroidProj/

然后,你在提交 AndoridProj 这个到仓库,实现多人协作同一Android工程,之后再在里面实现渠道包输出,接不同sdk等

首先感受大佬回复,这个想法,我最开始就是这样做的,一个我们自己的cocos creator游戏项目,一个buildpackage工程项目,所有的原生打包都是在buildpackage项目,通过脚本来拷贝相应资源到buildpackage工程目录下对应的位置。然后,通过脚本命令参数传递对应渠道号,构建打包对应渠道包。但是,他们想在当前ccc项目里来构建项目,没法,只能按照他们来的。因为,他们还想集成在github actions集成环境构建打包,不想搞多套工程项目。所以,出现现在这个问题,有什么办法解决呢?目前,我暂时用脚本拷贝文件过去,然后同步,打包

我这个也不是多套工程项目呀,Android 工程项目放在 assets/ 同级下,也是同一个游戏项目呀

或者这样子你可以理解吗

你的项目原来是这样子的

  • assets/
  • settings/
  • package.json
  • tsconfig.json

现在变成了这样子

  • assets/
  • settings/
  • package.json
  • tsconfig.json
  • AndroidProj/
    • build.gradle: 修改一下,实现每次构建前,自动从 build/android/data 中获取 cocos 构建的资源
  • XCodeProj/

Android 的渠道包,不要通过 CocosCreator 构建不同Android工程去做,AndroidStudio 本身就有一套很成熟的渠道包方案,可以配置不同的build变体去做,这部分知识和cocos没关系,纯Android的,纯Android领域的官方多渠道包方案,大家都在用

明白了,这和把build提交到git仓库差不多的做法了。好的,非常感谢大佬的回复,我自己在研究研究

对的,但是现在结构过于松散,你将build提交仓库还不行

  • native/common
  • native/android

也有内容,也得提交,结果就很多都要提交,所以我才建议,你先整理好他们的关系,弄成一个标准的Android工程目录结构,然后才好做后续的

比如你刚刚的哪些需求,如果你在一个标准的Android工程上操作,都不用开发什么ts脚本复制什么的

Android 官方本身就支持定义多个渠道,每个渠道自定义icon、渠道号、名字等等

你要是一开始没打好地基,硬在cocos现在的项目结构上开发,结果就是你写了很多 ts 脚本协作你完成这些事情

其实真的没必要

Native目录是必须提交到git仓库的,因为官方要求就是这样,来方便跨平台和多人协作,我目前觉得这样还是挺好的,我只是不会android gradle语法,不懂那个执行顺序,所以没搞懂添加依赖库的添加方式。
image

就3个目录

  • build/android
  • native/common
  • native/android

你看通了,其实就可以忽略他这个章节

我这边的需求的多渠道可能和你们的不一样,我这边不是在android工程里面配置多个渠道来打包的,我这边是根据我的渠道号,来打指定渠道的包。


根据这个-PCfg参数,然后在 app/build.gradle,来解析这个命令参数,然后

来打具体的包,然后包名,icon,splash图这些,我是通过 脚本复制到对应目录下。来执行打不同渠道的包

好的,多谢大佬了,我去研究下