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打包集成了移动的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: 能分析下原因不?
仔细看github的说明,移动基地的CMBilling.jar属于源码文件,应该放到android-ARM/RDT 下 而不是 ROOT下.@ihao
厉害,已经发展成独立项目了!
github上 解密ADT第一篇-aapt工具详解 的链接有些问题,请查一下。
谢谢提醒,已修复,如果没什么太特别的需求基本上已经很少再更新的了.@zrong
您好,RECT,请问下,你这版的RDT打包出来后,包名还是前缀带AIR开头的吧?
默认为设置环境变量“AIR_NOANDROIDFLAIR=true”可去掉AIR包名头@pop
你好,我正在用RDT,打包APK后,我解压查看里面的R文件,无法找到第三方平台提供的res资源中R.java配置的资源ID,完全是乱的,不知道怎么回事
@blithe, AIR4.0 不是说解决了这个问题么?你详细看RDT的ANE配置说明
之前我一直使用adt.java来打包,现在只是将adt.java换为RDT.java,其他都没变,还需要其他什么配置么
@blithe, 使用RDT打包 的ANE是非常便捷的.配置非常简单 除去了很多繁杂的步骤,你可以把错误的LOG发一下 我才能定位问题.
@Rect, “彻底解决android资源ID找不到的问题.”一定要通过配置那个xml来解决吗,仅仅放在Android-ARM下不行么
@blithe, 由于SDK方取资源ID 是根据包路径来取的.而这个包的路径是什么AIR本身无法得知,所以只能配置在xml里面.不一定要在xml配置 你自己手动生成也行的.