среда
- Аппаратное обеспечение: четырехъядерный процессор MacBook Pro Intel Core i7
- Система: macOS Big Sur 11.4.2, версия xcode 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. Создайте GameDemo с помощью команды cocos и
создайте демо, выполнив следующие шаги.
# 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 следующим образом (скопируйте следующее содержимое в файл, а затем используйте команду patch для установки демонстрации)
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_VERSION
targetSdkVersion 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_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=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
окончательная сборка
С проектом синхронизации все в порядке, и прямой запуск
будет плавным, наслаждайтесь ...
эффектом запуска демо на мобильном телефоне.