About

<#TEMPLATE_INCLUDE_NINEPAGE_ABOUTME#>
  • Jun

    11

    在线快速生成 iOS、Android 应用 app 图标,Assets.car、ICON ,含手机应用 ICON 模板和全部尺寸,支持 iOS 全部版本包括 iOS11 和 android 各个版本。自动生成IOS 11要求的 ICON 文件 Assets.car 。
     
    安卓图标使用:把生成的 Android 目录下的图标复制到 Android 项目中。
     
    iOS图标使用:把其他图标复制到项目中并修改配置,把生成的 Assets.car 复制到 iOS 项目根目录下 ,配置 Info.plist 中 CFBundleIconName 值为 AppIcon
    <key>CFBundleIconName</key>
    <string>AppIcon</string>

    在线地址:http://applicationloader.net/appuploader/icontool.php

    Jun

    16

    之前用 AIR SDK 16 时一直正常,说明驱动正常。昨天升级了一下 AIR SDK 到 18 版本后真机调试显示“Flash Bulider找不到连接的设备”。CMD 命令行中输入:

    <Flash Builder 4.7 Program Files>\eclipse\plugins\com.adobe.flash.compiler_4.7.0.348297\AIRSDK\lib\aot\bin\iOSBin\idb.exe -devices

    提示:

    iTunes MobileDevice library not found.Please ensure iTunes version 12.1.0.71 or greater is installed.

    升级 iTunes 至最新版本,搞定。

    Feb

    25

    使用了某个功能的 Android ANE 后出现一个如下的 TOP-LEVEL 异常错误:

    dx tool failed:
    UNEXPECTED TOP-LEVEL ERROR:
    java.lang.OutOfMemoryError: Java heap space
     at java.util.ArrayList.(Unknown Source)
     at java.util.ArrayList.(Unknown Source)
     at com.android.dx.ssa.SsaMethod.buildUseList(SsaMethod.java:423)
     at com.android.dx.ssa.SsaMethod.getUseListForRegister(SsaMethod.java:615)
     at com.android.dx.ssa.SCCP.addUsersToWorklist(SCCP.java:105)
     at com.android.dx.ssa.SCCP.simulateStmt(SCCP.java:385)
     at com.android.dx.ssa.SCCP.simulateBlock(SCCP.java:199)
     at com.android.dx.ssa.SCCP.run(SCCP.java:400)
     at com.android.dx.ssa.SCCP.process(SCCP.java:84)
     at com.android.dx.ssa.Optimizer.runSsaFormSteps(Optimizer.java:161)
     at com.android.dx.ssa.Optimizer.optimize(Optimizer.java:101)
     at com.android.dx.ssa.Optimizer.optimize(Optimizer.java:74)
     at com.android.dx.dex.cf.CfTranslator.processMethods(CfTranslator.java:269)
     at com.android.dx.dex.cf.CfTranslator.translate0(CfTranslator.java:131)
     at com.android.dx.dex.cf.CfTranslator.translate(CfTranslator.java:85)
     at com.android.dx.command.dexer.Main.processClass(Main.java:299)
     at com.android.dx.command.dexer.Main.processFileBytes(Main.java:278)
     at com.android.dx.command.dexer.Main.access$100(Main.java:56)
     at com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:229)
     at com.android.dx.cf.direct.ClassPathOpener.processArchive(ClassPathOpener.java:244)
     at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:130)
     at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:108)
     at com.android.dx.command.dexer.Main.processOne(Main.java:247)
     at com.android.dx.command.dexer.Main.processAllFiles(Main.java:183)
     at com.android.dx.command.dexer.Main.run(Main.java:139)
     at com.android.dx.command.dexer.Main.main(Main.java:120)
     at com.android.dx.command.Main.main(Main.java:89)

    由于原先一直正常,最后一次在优化代码后,在调试时出现上述问题,经过数小时的努力,仍然百思不得其解。但原先已经发布的项目切依然可以正常编译,所以最终放弃了调试,直接将项目发布到生产模式,运行的时候发现又正常了。怀疑是 ANE 文件编译时版本的问题,所以再次测试,果然在 Flex 调试模式下输出 JAVA 版本与在生产模式下(系统的 JAVA) 版本并不相同。

    调试模式下输出结果为:

    java version "1.6.0_16"
    Java(TM) SE Runtime Environment (build 1.6.0_16-b01)
    Java HotSpot(TM) Client VM (build 14.2-b01, mixed mode)

    生产模式下输出结果为:

    java version "1.7.0_51"
    Java(TM) SE Runtime Environment (build 1.7.0_51-b13)
    Java HotSpot(TM) Client VM (build 24.51-b03, mixed mode, sharing)

    所以当出现“dx tool failed: UNEXPECTED TOP-LEVEL ERROR:”错误时,可以尝试在最新版本的 JAVA 运行时环境下编译。

    More...

    Jan

    25

    Adobe AIR SDK 4.0 在 Release 版本最新发布后进行了测试,在 使用 -useLegacyAOT no 参数后(新的 halfmoon 编译器),确实让 AOT 编译模式加速了 5-10 倍,基本上可以说跟解析模式的打包速度差不多了。

    但在实际测试过程中发现了一个严重的 Bug,在中文系统中,有时会提示“命令行太长”或“输入行太长”,并且会带有以下英文提示:

    Compilation failed while executing : compile-abc

    当然,它并不是真的因为命令行或输入行太长造成的,因为既便用户全部使用系统环境来缩短命令行,也会是相同的提示;换句话说,只要不使用“ -useLegacyAOT no”参数(不使用 halfmoon 编译器),使用更长的命令行也可以正常编译。

    搜索之后,发现早在 Beta 版本时就已经有人在 Adobe 官方论坛提交过这个 Bug,但在 Adobe 发布 Release 版本时并未修复这个问题。Release 版本发布之后仍然有许多其他人在 Adobe 官方论坛提交了这个问题,称之为“毫无逻辑”的 Bug。

    所以目前的 4.0 版本如果在使用 “-useLegacyAOT no”参数之后,出现了这个问题,除了禁用“ -useLegacyAOT no”参数,没有任何解决方法(当然,编译的时间也会跟 3.9 以前的版本一样长),只能等待 Adobe 更新 AIR SDK 修复这个问题。

    More...