版本:2.4.2

参考:

cocos教程:安装配置原生开发环境

cocos教程:打包发布原生平台

 

记录下安装配置cocos的win下原生开发环境,从jdk,android studio,python安装,直到能够真机调试。

 

一  安装Java SDK

二 安装Python

三 安装Android Studio

四 设置cocos,构建发布

五 遇到的问题

一 安装Java SDK

编辑Android工程需要Java JDK工具, JDK1.8 64位:下载地址 

 

安装完成后,配置环境变量。我win10。桌面计算机图标上右键 - 属性 - 更改设置 - 高级 - 环境变量。

 

新建系统变量JAVA_HOME,变量值是java sdk安装路径

 

编辑变量Path

 

点击新建,输入 "%JAVA_HOME%\bin“

 

配置完后重启电脑,在cmd中输入 java -version 查看版本

 java -version

 

二 安装Python

下载地址:Python

用于C++编译环境,我下载安装的2.7.13。 (cocos推荐2.7.5+,不要安装3.x版本)

 

安装完成后,和jdk一样,在环境变量Path中新建"C:\Python27"

 

 

重启电脑,cmd输入python,可以查看版本

python

 

三 安装Android Studio

Android Studio

下载安装Android Studio:下载地址,我下载的android-studio-ide-191.5977832-windows。

 

SDK

打开android studio,新建任意项目,选择Tools - SDK Manager

 

cocos推荐主流API Level 23,26,28。 勾选后,点击右下角Apply,开始自动下载。

复制Andoroid SDK Location的地址,后面需要在cocos中填写。

 

NDK

安装完sdk,切换到SDK Tools,勾选右下角Show Package Details。

勾选Android SDK Build-Tools最新版,点击Apply,会自动下载。

勾选NDK 19(cocos推荐r17-19),点击Apply,会自动下载。

 

 

 四 配置cocos原生开发环境

cocos菜单栏:文件 - 设置 - 原生开发环境

 

设置SDK路径:C:\Users\Administrator\AppData\Local\Android\Sdk

设置NDK路径:C:\Users\Administrator\AppData\Local\Android\Sdk\ndk\19.2.5345600      (cocos推荐r17-19版本,我选择的19)

 

构建

cocos菜单栏:项目 - 构建发布,具体参数意思看cocos教程

 

发布原生不能勾选MD5 Cache

点击构建。构建完毕后,在android studio中打开cocos构建的项目。这时android studio会自动下载缺失的工具,比如gradle等。

首次在cocos构建,必须先打开android studio打开项目,androidstudio自动下载必须的工具,然后再返回cocos编译,不然很可能编译失败。

 

gradle默认4.10.3,也是cocos目前支持的版本。如果要更换gradle版本,android studio菜单栏:Edit - Find - Find in Path,输入如下进行搜索

distributionUrl=https\://services

 例如将Gradle版本改成6.3。

 

 

编译

点击编译,过程比较长。可能会报错,出现failed,点击查看log。拿着报错信息去百度或者论坛找解决方案吧。

我运行了好几次,都没成功,在论坛和百度查找了一番。重新安装了jdk才解决,cocos官网教程那个java jdk地址下载了用了报错。 = =!

 

如果编译成功,则显示complete

 

将手机打开开发者模式,开启usb调试,点击运行。然后没反应。

 

android studio 菜单:View - ToolBar, 打开工具栏

 

显示工具栏,可以看到No devices,说明手机虽然连上了电脑,但是android studio检测不到。

 

选择Troubleshoot device connnections。

 

Android Studio 检测到14个设备,其中包括我的华为手机。但是android studio就是显示 no deveices。

 

尝试下载华为手机驱动,adb,什么的,折腾了一番,都没用。

然后解决方案是,下载豌豆荚,手机和pc端都安装。

豌豆荚官网:手机端下载

天极网:pc端下载  (因为豌豆荚pc端已经不运营了,所以官网没有)

下载完成后,pc和手机都运行豌豆荚,连接手机,打开usb调试模式,豌豆荚会自动下载驱动,然后android studio就会检测到手机了。

下次就不需要再运行豌豆荚了,手机连上usb会自动被android studio检测到。

 

点击绿色三角运行,手机会自动安装apk,这样就可以真机实测了。

 

下图项目自动安装的apk

 

 五 遇到的问题

 Java home is different

发布原生,编译时报错,查看logs时,显示Java home is different.

 

在androd studio中选择File-Project Structure

 

 

选择SDK Location - JDK location,选择系统的JAVA_HOME

 

 

如果仍然提示这个问题,删除项目再次构建-编译一次,编译前检查JDK location是否设置为了系统环境变量配置的JAVA_HOME。

 

android studio 和 gradle使用的jdk不是同一个

 发布原生的时候,提示android studio 和 gradle使用的jdk不是同一个。然后就一直在那转圈等着。

 

 

修改同上一个问题一样

 

APP ABI

构建发布时选择了armeabi-v7a,导致编译失败。我取消了勾选,只勾选arm64-v8a和x86则编译通过。

 

发布后可以在android项目中这里修改APP ABI。

 app abi设备的cpu类型:

  1. armeabiv-v7a: 第7代及以上的 ARM 处理器。2011年15月以后的生产的大部分Android设备都使用它.
  2. arm64-v8a: 第8代、64位ARM处理器,很少设备,三星 Galaxy S6是其中之一。
  3. armeabi: 第5代、第6代的ARM处理器,早期的手机用的比较多。
  4. x86: 平板、模拟器用得比较多。
  5. x86_64: 64位的平板。

 

屏幕高刷新率会改变游戏FPS

在144hz屏幕刷新率的手机上,游戏刷新率也会变成Fps=144。

使用cc.game.setFrameRate(60)修改无效!
使用cc.game.setFrameRate(59)才有效...
源码CCGame.js中,只要是不是60或30,就会使用this.frame_Time = 1000/frameRate的时间;若是60或30,则会使用手机刷新率。

 

 

构建发布时,编译报错

这是刚构建android项目后,用androd studio打开项目时下载gradle-4.10.3-all,下载完成后,没有点击右上角的sync-now引起。

在android studio下载号gradle后点击右上角的sync-now就行了。

 

用真机调试时,报这个警告

 

在gradle.properties中增加android.useDeprecatedNdk=true

 

 

真机调试,报这个错

貌似没什么影响...

 

久了没打包,突然出现这个错。

 

 需要clean一下项目,clean后打包成功。

 

 

 

 

 

posted on 2020-08-27 17:35  gamedaybyday  阅读(2095)  评论(0编辑  收藏  举报