环境

  • 硬件:macbook pro 四核Intel Core i7
  • 系统:macOS Big Sur 11.4.2、 xcode Version 13.1 、cmake 3.20.5
  • 软件:iterm2 Build 3.4.8、zsh 5.8、Android Studio Dolphin | 2021.3.1
  • cocos2d-x v4 :
    官方下载压缩包 http://cocos2d-x.org/filedown/cocos2d-x-v4.0

前提

1、正确安装并配置好了cocos工具集
2、用cocos命令创建一个GameDemo
用如下步骤创建了Demo

# luogw @ ericluodeMacBook-Pro in ~/study/cocos/localCreateDemo [18:29:01]
$ pwd
/Users/luogw/study/cocos/localCreateDemo
$ cocos new AndGame -p com.luo.game -l cpp -d .
$ cd AndGame
$ mkdir build
$ cd build
$ cocos run --proj-dir .. -p android

在最后一步会遇到(要实际解决这个问题可能要去研究cocos命令的源码了吧)

然后我们去创建的工程目录的proj.android看一下

如上所示,看起来是一个很完整的Android工程,用AS打开去编译看一下

遇到问题

用AS直接打开尝试构建会遇到如下三个问题

1、cvc-complex-type.2.4.a: 发现了以元素 ‘base-extension‘ 开头的无效内容。应以 ‘{layoutlib}‘ 之一开头
2、ERROR: Minimum supported Gradle version is 5.4.1. Current version is 5.1.1.
3、No toolchains found in the NDK toolchains folder for ABI with prefix: arm-linux-androideabi

以过往的经验该要升级gradle版本、ndk版本了

解决方案

1、升级gradle版本
2、配置ndkversion

diff文件的内容如下(把该如下内容copy到一个文件文件,然后用patch命令给Demo打上aptch)

diff --git a/cocos2d/cocos/platform/android/libcocos2dx-with-controller/build.gradle b/cocos2d/cocos/platform/android/libcocos2dx-with-controller/build.gradle
index 94f3dd4..399a3fb 100644
--- a/cocos2d/cocos/platform/android/libcocos2dx-with-controller/build.gradle
+++ b/cocos2d/cocos/platform/android/libcocos2dx-with-controller/build.gradle
@@ -2,6 +2,7 @@ apply plugin: 'com.android.library'android {compileSdkVersion PROP_COMPILE_SDK_VERSION.toInteger()
+    ndkVersion "21.3.6528147"defaultConfig {minSdkVersion PROP_MIN_SDK_VERSION
diff --git a/cocos2d/cocos/platform/android/libcocos2dx/build.gradle b/cocos2d/cocos/platform/android/libcocos2dx/build.gradle
index 44f9a32..50f198b 100644
--- a/cocos2d/cocos/platform/android/libcocos2dx/build.gradle
+++ b/cocos2d/cocos/platform/android/libcocos2dx/build.gradle
@@ -3,6 +3,8 @@ apply plugin: 'com.android.library'android {compileSdkVersion PROP_COMPILE_SDK_VERSION.toInteger()+    ndkVersion "21.3.6528147"
+defaultConfig {minSdkVersion PROP_MIN_SDK_VERSIONtargetSdkVersion PROP_TARGET_SDK_VERSION
diff --git a/proj.android/app/build.gradle b/proj.android/app/build.gradle
index e91e946..db95423 100644
--- a/proj.android/app/build.gradle
+++ b/proj.android/app/build.gradle
@@ -4,7 +4,7 @@ apply plugin: 'com.android.application'android {compileSdkVersion PROP_COMPILE_SDK_VERSION.toInteger()
-
+    ndkVersion "21.3.6528147"defaultConfig {applicationId "com.luo.game"minSdkVersion PROP_MIN_SDK_VERSION
diff --git a/proj.android/build.gradle b/proj.android/build.gradle
index 5dff94d..fbce19f 100644
--- a/proj.android/build.gradle
+++ b/proj.android/build.gradle
@@ -7,7 +7,7 @@ buildscript {}dependencies {
-        classpath 'com.android.tools.build:gradle:3.1.0'
+        classpath 'com.android.tools.build:gradle:3.5.0'// NOTE: Do not place your application dependencies here; they belong// in the individual module build.gradle files
diff --git a/proj.android/gradle/wrapper/gradle-wrapper.properties b/proj.android/gradle/wrapper/gradle-wrapper.properties
index 8e341b7..02471c8 100644
--- a/proj.android/gradle/wrapper/gradle-wrapper.properties
+++ b/proj.android/gradle/wrapper/gradle-wrapper.properties
@@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOMEdistributionPath=wrapper/distszipStoreBase=GRADLE_USER_HOMEzipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-5.1.1-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-bin.zip

最终构建

同步工程OK,直接run
后续就一路畅通,enjoy…

手机上的Demo运行效果

【cocos源码学习】解决cocos2d-x-4.0 Android Demo构建遇到的问题相关推荐

  1. ERNIE源码学习与实践:为超越ChatGPT打下技术基础!

    ★★★ 本文源自AlStudio社区精品项目,[点击此处]查看更多精品内容 >>> ERNIE学习与实践:为超越ChatGPT打下技术基础! ERNIE是BERT相爱相杀的好基友,由 ...

  2. 文心ERNIE源码学习与实践:为超越ChatGPT打下技术基础!

    ERNIE学习与实践:为超越ChatGPT打下技术基础! ERNIE是BERT相爱相杀的好基友,由ERNIE发展起来的文心大模型,是GPT3.0的强劲竞争对手,未来还会挑战ChatGPT的江湖地位! ...

  3. Mybatis源码学习(三)SqlSession详解

    前言 上一章节我们学习了SqlSessionFactory的源码,SqlSessionFactory中的方法都是围绕着SqlSession来的.,那么SqlSession又是什么东东呢?这一章节我们就 ...

  4. ConcurrentHashMap源码学习

    ConcurrentHashMap源码学习 自从学习了AQS之后,想着重新读一下ConcurrentHashMap的源码来加深下理解,所以有了这篇文章,针对ConcurrentHashMap常用的方法 ...

  5. vue源码学习--vue源码学习入门

    本文为开始学习vue源码的思路整理.在拿到vue项目源码的之后看到那些项目中的文件夹,会很困惑,不知道每个文件夹内的世界,怎么变换,怎样的魔力,最后产生了vue框架.学习源码也无从学起.我解决了这些困 ...

  6. Laravel源码学习文章汇总

    过去一年时间写了20多篇文章来探讨了我认为的Larave框架最核心部分的设计思路.代码实现.通过更新文章自己在软件设计.文字表达方面都有所提高,在刚开始决定写Laravel源码分析地文章的时候我地期望 ...

  7. STL源码学习之空间配置

    STL的空间配置器主要用于内存的分配.填充.释放等操作,在学习它之前,需要深入一点理解new和delete.由于new和delete分两段操作:内存配置和对象构建(析构),本文亦将按此进行分类,其中第 ...

  8. ABP框架源码学习之修改默认数据库表前缀或表名称

    ABP框架源码学习之修改默认数据库表前缀或表名称 1,源码 1 namespace Abp.Zero.EntityFramework 2 { 3 /// <summary> 4 /// E ...

  9. 【Android 源码学习】SharedPreferences 源码学习

    第一章:SharedPreferences 源码学习 文章目录 第一章:SharedPreferences 源码学习 Android SharedPreferences的缺陷 MMKV.Jetpack ...

  10. android 涂鸦(清屏,画笔,粗细,保存)以及canvas源码学习

    更新:本文的内容只是一部分,这段时间添加了橡皮擦这个新功能,于是问题接二连三的来,比如说:如果用本文的内容去做橡皮擦的话,难!(至少我没解决,不是没背景图,就是有背景图但是更新要在下一下刷橡皮擦的时候 ...

最新文章

  1. python语言入门m-Python学习基础篇 -1
  2. aqs java_Java并发之AQS详解
  3. 蓝桥杯 数字三角形 贪心+动态规划
  4. day 59Bootstrap自带图表和fontawesome图标 导航和导航条 Bootstrap常用插件 sweetalert插件介绍...
  5. MVC解决Json DataGrid返回的日期格式是/Date(20130450000365)
  6. 使用GitHub管理代码
  7. 秩和比综合评价法(RSR)详解及Python实现和应用
  8. 银灿IS916也可以量产三驱三启动成功教程
  9. java把行政区划放到一个节点树形中
  10. 【人脸表情识别】基于matlab GUI微表情识别系统【含Matlab源码 1852期】
  11. Selenium测试报错 Other element would receive the click 问题
  12. 【转】PHP PDO 学习笔记
  13. 25. 答疑 - SAP OData 框架处理 Metadata 元数据请求的实现细节,前后端组件部署在同一台物理服务器
  14. 自考计算机应用毕业证,注意!自考考试通过≠可以拿毕业证!
  15. 流程审批系统设计思路及实现方法
  16. node : 无法将“node”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正 确,然后再试一次 的解决方案
  17. 电力电子技术复习笔记2
  18. PCB设计软件之二:Mentor PADS Pro VX2.10版本安装使用
  19. 课堂随机提问回答问题神器三
  20. 一建 :费用索赔的计算

热门文章

  1. python获取上周周一日期_python python日期算法 本周,上周,本月,上月,本季,上季,今年, 去年...
  2. SpringBoot自定义starter
  3. Ubiquitous Religions 并查集
  4. Win10环境下安装VS2010旗舰版 和安装Visual Assist10.9.2108.0
  5. arcgis去除遥感影像黑边
  6. 今天您大数据营销了吗?
  7. SCCM通过PXE部署系统蓝屏Recovery
  8. 精英问题,大家没事可以做一做
  9. 如何在HTML标题中添加或改变图片
  10. 配置服务器获取信息失败,获取配置服务器失败