About

<#TEMPLATE_INCLUDE_NINEPAGE_ABOUTME#>
  • Oct

    2

    打开 C:\Users\用户名\AppData\Local\Adobe\AAMUpdater\1.0 类似的目录,删除 Data 与 Install 这两个目录下面的所有文件,重新启动更新程序。

    Nov

    17

    在 Flex 中使用 RL2时,上下文背景对象必须定义成接口的(_context:IContext)实例类型,而不是具体的实现类(_context:Context)的类型。

    1118: 属于 static 类型 robotlegs.bender.framework.api:IContext 的值的隐式强制指令的目标可能是非相关类型 robotlegs.bender.framework.impl:Context。

    上下文背景对象要定义成类的成员属性,如果是局部变量引用这个对象,在运行期可能会被垃圾回收。

    private var _context:IContext;

    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...

    Feb

    22

    在操作带有命名空间的 XML 数据时,为了节省开发时输入更少的代码,往往使用 default xml namespace  命令为设定一个默认的命名空间,可以省去重复的输入命名空间+::语法,但这有可能引发严重的 Bug。这种情况有可能发生在一个对象方法的内部或嵌套的函数内部中,运行时产生异常误错。如:

    typecheck XXXXX outer-scope = [global Object$ flash.events::EventDispatcher$ flash.display::DisplayObject$ flash.display::InteractiveObject$ flash.display::DisplayObjectContainer$ flash.display::Sprite$ flash.display::MovieClip$ Level$]

    在代码复杂的情况下,代码编辑器、代码编译器,以及代码除错器并不一定全部能正常工作,甚至有可能是错误的方式工作,尽量将代码简化,或使用最常规的语法进行编码。

    More...

    Oct

    16

    现象产生:在 Flex 开发过程中,如果使用了 FlexFrame,并且需要对其中的某些 mx_internal 修饰的方法进行覆盖,直接写 override mx_internal ...会产生一个Error,1004: namespace 要么找不到,要么不是编译时常数。

    解决方法:显式的方法明确指定命名空间 mx_internal 的 uri 值。如下样例代码:

    public namespace mx_internal="http://www.adobe.com/2006/flex/mx/internal";
    override mx_internal function drawBackground():void
    {
        super.mx_internal::drawBackground();
        //......
    }

    注:从 Adobe 官方论坛发现这个问题已存在多年 http://forums.adobe.com/message/2966061

    More...