[RDT更新]全面支持AIR4.0

2014.03.06 – RDT

仅支持以下功能:(3.5以前的部分功能 adobe官方已修复 所以在4.0中去掉.)

  • 自定义AIR主activity的launchMode
  • 去除android资源国际化限制.
  • 彻底解决android资源ID找不到的问题.
  • ANE中加入多jar库引用,去除ANE中合并jar的步骤.
  • ANE中彻底解决资源ID错乱问题.(不是找不到ID,是ID数值偏差,在ANE中偶有发生).
  • 可打包任意文件进APK根目录,以应对类似移动MM 联想支付等问题.
  • 尽最大限度让AIR for android项目在打包上无限接近原生android项目.

更多详情请移步github!

案例地址

Anti-ADT:https://github.com/recter/Anti-ADT

feed: BANGF846973A2B0A360D19518E1BXIANGUO

《[RDT更新]全面支持AIR4.0》有12个想法

  1. 用最新的RDT打包集成了移动的APK包时报这样的错误:
    ROOT:ROOT\CMBilling.jar
    RootFiles:1unexpected failure: String index out of range: -1
    java.lang.StringIndexOutOfBoundsException: String index out of range: -1
    at java.lang.String.substring(Unknown Source)
    at com.adobe.air.apk.RDTPacker.ANEFileInRoot(RDTPacker.java:50)
    at com.adobe.air.apk.APKPackager.processExtensions(APKPackager.java:241)
    at com.adobe.air.ApplicationPackager.createPackage(ApplicationPackager.java:65)
    at com.adobe.air.ADT.parseArgsAndGo(ADT.java:591)
    at com.adobe.air.ADT.run(ADT.java:435)
    at com.adobe.air.ADT.main(ADT.java:485)
    只要ANE中带上ROOT目录内有相应的jar资源,便报这样的错误,如果ANE中没有ROOT则不会报错.
    AIR的sdk是4.0的.用原生的ADT可以正常打包.看这错误应该是处理ANE中ROOT目录内的资源时报错了
    @Rect: 能分析下原因不?

  2. 仔细看github的说明,移动基地的CMBilling.jar属于源码文件,应该放到android-ARM/RDT 下 而不是 ROOT下.@ihao

  3. 厉害,已经发展成独立项目了!

    github上 解密ADT第一篇-aapt工具详解 的链接有些问题,请查一下。

  4. 您好,RECT,请问下,你这版的RDT打包出来后,包名还是前缀带AIR开头的吧?

  5. 你好,我正在用RDT,打包APK后,我解压查看里面的R文件,无法找到第三方平台提供的res资源中R.java配置的资源ID,完全是乱的,不知道怎么回事

    1. @blithe, AIR4.0 不是说解决了这个问题么?你详细看RDT的ANE配置说明

  6. 之前我一直使用adt.java来打包,现在只是将adt.java换为RDT.java,其他都没变,还需要其他什么配置么

    1. @blithe, 使用RDT打包 的ANE是非常便捷的.配置非常简单 除去了很多繁杂的步骤,你可以把错误的LOG发一下 我才能定位问题.

      1. @Rect, “彻底解决android资源ID找不到的问题.”一定要通过配置那个xml来解决吗,仅仅放在Android-ARM下不行么

        1. @blithe, 由于SDK方取资源ID 是根据包路径来取的.而这个包的路径是什么AIR本身无法得知,所以只能配置在xml里面.不一定要在xml配置 你自己手动生成也行的.

发表评论

邮箱地址不会被公开。 必填项已用*标注