Mac M1芯片开发cocos遇到的若干坑

1,842 阅读3分钟

因为受不了之前电脑的慢, 也受不了单位老电脑8G内存,所以自己买了一台2021款的14寸mac pro,32G内存,用起来真是无比丝滑。 但是,在介入开发cocos时,遇到了若干问题。 我想目前来说可以说是一个比较全面的踩坑指南,希望能够帮助大家。爬坑很艰苦,跳坑要谨慎,先看看本篇文章,能绕过一些坑。

我从安装cocos和android studio开始讲起,因为是苹果M1芯片,抛弃了intel,使用了arm架构,所以在安装时有些注意的地方。

1.安装cocos

cocos2.x 在安装时没有太多说的,目前是2.4.7, 照常下载就可以。具体的配置,后面说。

2. 安装 android studio

这时就有不一样的了,需要下载对应的arm版本

image.png

要选择红框中的哈。下载链接

3. Android studio的设置

这一步比较重要,cocos官网上对这一块有比较详细的介绍。我这里不多做介绍,基本上按照来就行了。

4. cocos中的设置

当然,上面cocos官网上也有介绍。说一句,注意NDK的位置,新版本的android studio已经支持了多个版本的NDK同时存在。所以选择的时候,选中的是具体的那个版本文件,而不是文档中的 ndk-bundle文件夹。 这里注意一下就好。

sdk的位置就是你在android studio上的位置,cocos官方文档上有介绍。

5. 解决遇到的坑。

下面写我遇到的坑。

5.1 坑(1) 在cocos中编译正常,但是把编译产出放在android中,会发现报NDK的错误:

2021-12-17 11:18:55,178 [  24732]   INFO - ativeWorkspaceModificationTask - NDK support for project 'xxx' is disabled because the project doesn't contain any valid native configurations. 
2021-12-17 11:18:55,248 [  24802]  ERROR - intellij.openapi.progress.Task - null 
java.lang.NullPointerException
   at com.android.tools.idea.gradle.project.sync.issues.ExternalNdkBuildIssuesReporter.report(ExternalNdkBuildIssuesReporter.java:102)
   at com.android.tools.idea.gradle.project.sync.issues.BaseSyncIssuesReporter.reportAll(BaseSyncIssuesReporter.java:72)

报错的原因其实是: NDK support for project 'xxx' is disabled because the project doesn't contain any valid native configurations. 已禁用对项目“xxx”的NDK支持,因为该项目不包含任何有效的本机配置。

这个坑太深了,爬起来不是一般的痛苦。 但是怀着不达目的不罢休的心态,还是一点一点定位到了:

M1芯片,致使NDK在加载的时候出问题了。

所以就要想想怎么能够让NDK能够正常执行。 于是,终于找到了国外的一篇文章: [# Unknown host CPU architecture: arm64 , Android NDK SiliconM1 Apple MacBook Pro](stackoverflow.com/questions/6…)

所以,我们也照着位置改一改。具体是找到你下载的ndk存放位置,在cocos中你已经配过,如果没有配过,那么是在这里:

image.png

然后就能找到具体你下载的那个ndk了,比如我这是:

image.png

然后vim ndk-build, 进行下面的更改:

// before

#!/bin/sh
DIR="$(cd "$(dirname "$0")" && pwd)"
$DIR/build/ndk-build "$@"


更改后:

#!/bin/sh
DIR="$(cd "$(dirname "$0")" && pwd)"
arch -x86_64 /bin/bash $DIR/build/ndk-build "$@"

改完后,重新在android studio中构建,可以选择

image.png

重新启动应用。

我想,这时是可以解决这个问题的。

5.2坑(二) 解决Android Studio SDK Manager下载超时问题

由于众所周知的一些原因,导致有时在下载sdk manager时会下载不了。 那么我现在给出一个还不错的解决方案:

mac和windows只要找到对应的 hosts 文件地址修改即可。我的本地环境是 mac,修改对应的配置文件 /etc/hosts

增加:

180.163.150.33    dl.google.com

目前还是可用的,但说不准以后就不行了,所以有万能解决方案--- 答案是 ping.chinaz.com/,打开这个网站后,Ping 检测 tab 输入 dl.google.com 进行check。 完美解决。

5.3 TODO: 发现后我再补上