axmol/docs/RELEASE_NOTES_CN.md

2.6 KiB
Raw Blame History

Table of Contents generated with DocToc

v3.13.1

Bug修复

  • Label的颜色错误问题
  • 如果没有设置design resolution应用程序在debug模式下会崩溃
  • 在Android系统如果通过点击应用图标从后台推前台可能导致崩溃
  • 在Android系统如果音乐或音效资源不在APK包里会导致无法播放
  • 在Android系统AudioEngine::stop()会回调finish回调函数
  • 使用SimpleAudioEngine或者AudioEngine播放音效或者背景音乐在Android 2.3.x会崩溃
  • JSB中如果传入object.setString()的参数类型是数字,没有任何效果

对应的github issue可以从这里找到。

Cocos命令的改动

之前的版本在Android平台下cocos命令编译代码时会找大于等于指定的API级别的Android SDK比如APP_ROOT/proj.android/project.properties的内容是这样的

target=android-13 // Android API级别
android.library.reference.1=../../../cocos/platform/android/java

那么cocos命令会在ANDROID_SDK_ROOT/platforms目录下找android-13,如果找不到就会找android-14,如果找不到的话会找android-15直到找到一个合适的级别。

该算法有个问题,假设你只下载了android-21,虽然APP_ROOT/proj.android/project.properties指定是要使用android-13,最终也会使用android-21编译。编译出来的程序如果跑在Android 4.0的设备那么就可能会崩溃。使用高版本Android SDK编译的程序不能保证能在低版本的Andoid系统上运行就好比用iOS 9编译的程序不能保证运行在iOS 8一样。

从3.13.1开始cocos命令如果找不到指定的API级别会立即停止。想用指定的API级别编译的话需要使用命令行参数指定

cocos compile -p android --ap android-19

注意的事,一旦该命令运行后,那么APP_ROOT/proj.android/project.properties的内容就会改动,变成

target=android-19 // Android API级别
android.library.reference.1=../../../cocos/platform/android/java

Android API级别和Android系统版本间存在对应的映射关系可以参看该文档获取详细的内容。