版本:2.4.2
参考:
记录下安装配置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类型:
- armeabiv-v7a: 第7代及以上的 ARM 处理器。2011年15月以后的生产的大部分Android设备都使用它.
- arm64-v8a: 第8代、64位ARM处理器,很少设备,三星 Galaxy S6是其中之一。
- armeabi: 第5代、第6代的ARM处理器,早期的手机用的比较多。
- x86: 平板、模拟器用得比较多。
- x86_64: 64位的平板。
屏幕高刷新率会改变游戏FPS
在144hz屏幕刷新率的手机上,游戏刷新率也会变成Fps=144。
构建发布时,编译报错
这是刚构建android项目后,用androd studio打开项目时下载gradle-4.10.3-all,下载完成后,没有点击右上角的sync-now引起。
在android studio下载号gradle后点击右上角的sync-now就行了。
用真机调试时,报这个警告
在gradle.properties中增加android.useDeprecatedNdk=true
真机调试,报这个错
貌似没什么影响...
久了没打包,突然出现这个错。
需要clean一下项目,clean后打包成功。