【cocos源码学习】解决cocos2d-x-4.0 Android Demo构建遇到的问题
环境
- 硬件: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构建遇到的问题相关推荐
- ERNIE源码学习与实践:为超越ChatGPT打下技术基础!
★★★ 本文源自AlStudio社区精品项目,[点击此处]查看更多精品内容 >>> ERNIE学习与实践:为超越ChatGPT打下技术基础! ERNIE是BERT相爱相杀的好基友,由 ...
- 文心ERNIE源码学习与实践:为超越ChatGPT打下技术基础!
ERNIE学习与实践:为超越ChatGPT打下技术基础! ERNIE是BERT相爱相杀的好基友,由ERNIE发展起来的文心大模型,是GPT3.0的强劲竞争对手,未来还会挑战ChatGPT的江湖地位! ...
- Mybatis源码学习(三)SqlSession详解
前言 上一章节我们学习了SqlSessionFactory的源码,SqlSessionFactory中的方法都是围绕着SqlSession来的.,那么SqlSession又是什么东东呢?这一章节我们就 ...
- ConcurrentHashMap源码学习
ConcurrentHashMap源码学习 自从学习了AQS之后,想着重新读一下ConcurrentHashMap的源码来加深下理解,所以有了这篇文章,针对ConcurrentHashMap常用的方法 ...
- vue源码学习--vue源码学习入门
本文为开始学习vue源码的思路整理.在拿到vue项目源码的之后看到那些项目中的文件夹,会很困惑,不知道每个文件夹内的世界,怎么变换,怎样的魔力,最后产生了vue框架.学习源码也无从学起.我解决了这些困 ...
- Laravel源码学习文章汇总
过去一年时间写了20多篇文章来探讨了我认为的Larave框架最核心部分的设计思路.代码实现.通过更新文章自己在软件设计.文字表达方面都有所提高,在刚开始决定写Laravel源码分析地文章的时候我地期望 ...
- STL源码学习之空间配置
STL的空间配置器主要用于内存的分配.填充.释放等操作,在学习它之前,需要深入一点理解new和delete.由于new和delete分两段操作:内存配置和对象构建(析构),本文亦将按此进行分类,其中第 ...
- ABP框架源码学习之修改默认数据库表前缀或表名称
ABP框架源码学习之修改默认数据库表前缀或表名称 1,源码 1 namespace Abp.Zero.EntityFramework 2 { 3 /// <summary> 4 /// E ...
- 【Android 源码学习】SharedPreferences 源码学习
第一章:SharedPreferences 源码学习 文章目录 第一章:SharedPreferences 源码学习 Android SharedPreferences的缺陷 MMKV.Jetpack ...
- android 涂鸦(清屏,画笔,粗细,保存)以及canvas源码学习
更新:本文的内容只是一部分,这段时间添加了橡皮擦这个新功能,于是问题接二连三的来,比如说:如果用本文的内容去做橡皮擦的话,难!(至少我没解决,不是没背景图,就是有背景图但是更新要在下一下刷橡皮擦的时候 ...
最新文章
- python语言入门m-Python学习基础篇 -1
- aqs java_Java并发之AQS详解
- 蓝桥杯 数字三角形 贪心+动态规划
- day 59Bootstrap自带图表和fontawesome图标 导航和导航条 Bootstrap常用插件 sweetalert插件介绍...
- MVC解决Json DataGrid返回的日期格式是/Date(20130450000365)
- 使用GitHub管理代码
- 秩和比综合评价法(RSR)详解及Python实现和应用
- 银灿IS916也可以量产三驱三启动成功教程
- java把行政区划放到一个节点树形中
- 【人脸表情识别】基于matlab GUI微表情识别系统【含Matlab源码 1852期】
- Selenium测试报错 Other element would receive the click 问题
- 【转】PHP PDO 学习笔记
- 25. 答疑 - SAP OData 框架处理 Metadata 元数据请求的实现细节,前后端组件部署在同一台物理服务器
- 自考计算机应用毕业证,注意!自考考试通过≠可以拿毕业证!
- 流程审批系统设计思路及实现方法
- node : 无法将“node”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正 确,然后再试一次 的解决方案
- 电力电子技术复习笔记2
- PCB设计软件之二:Mentor PADS Pro VX2.10版本安装使用
- 课堂随机提问回答问题神器三
- 一建 :费用索赔的计算
热门文章
- python获取上周周一日期_python python日期算法 本周,上周,本月,上月,本季,上季,今年, 去年...
- SpringBoot自定义starter
- Ubiquitous Religions 并查集
- Win10环境下安装VS2010旗舰版 和安装Visual Assist10.9.2108.0
- arcgis去除遥感影像黑边
- 今天您大数据营销了吗?
- SCCM通过PXE部署系统蓝屏Recovery
- 精英问题,大家没事可以做一做
- 如何在HTML标题中添加或改变图片
- 配置服务器获取信息失败,获取配置服务器失败