症状
複数のaneを組み合わせてapkをビルドしようとしたところaaptのエラーでビルドに失敗する
アプリケーションのパッケージ化中にエラーが発生しました :
aapt tool failed:/private/var/folders/7d/4kjgk5650jx_kpnwz2s34gm00000gn/T/ff7da53a-b9e8-4c0c-a2e4-d57794574dbe/res/layout/com_facebook_placepickerfragment_list_row.xml:33: error: Error: No resource found that matches the given name (at 'layout_width' with value '@dimen/com_facebook_picker_place_image_size').
/private/var/folders/7d/4kjgk5650jx_kpnwz2s34gm00000gn/T/ff7da53a-b9e8-4c0c-a2e4-d57794574dbe/res/layout/com_facebook_placepickerfragment_list_row.xml:33: error: Error: No resource found that matches the given name (at 'layout_height' with value '@dimen/com_facebook_picker_place_image_size').
/private/var/folders/7d/4kjgk5650jx_kpnwz2s34gm00000gn/T/ff7da53a-b9e8-4c0c-a2e4-d57794574dbe/res/layout/com_facebook_search_bar_layout.xml:3: error: Error: No resource found that matches the given name (at 'background' with value '@color/com_facebook_picker_search_bar_background').
/private/var/folders/7d/4kjgk5650jx_kpnwz2s34gm00000gn/T/ff7da53a-b9e8-4c0c-a2e4-d57794574dbe/res/layout/com_facebook_search_bar_layout.xml:15: error: Error: No resource found that matches the given name (at 'textColorHint' with value '@color/com_facebook_picker_search_bar_text').
/private/var/folders/7d/4kjgk5650jx_kpnwz2s34gm00000gn/T/ff7da53a-b9e8-4c0c-a2e4-d57794574dbe/res/layout/com_facebook_search_bar_layout.xml:15: error: Error: No resource found that matches the given name (at 'background' with value '@color/com_facebook_picker_search_bar_background').
エラー内容を見るとリソースファイル周りでうまく行ってない模様
組み込むaneが1つだけだとビルドできるが複数組み込むとビルドできない
やったこと
- AIR 13 SDKに変更 → ×
- AIRに同梱されているaaptを最新(Android SDKのbuild-tools 19.0.3)に置き換える → ×
- AIR 4.0から使えるようになった<packagedResources>を設定したaneを使う → ○
platform.xml
<platform xmlns="http://ns.adobe.com/air/extension/4.0">
<packagedResources>
<packagedResource>
<packageName>com.example.ane</packageName>
<folderName>res</folderName>
</packagedResource>
</packagedResources>
</platform>
参考: Including resources in your native extension package
http://help.adobe.com/en_US/air/extensions/WSf268776665d7970d-2e74ffb4130044f3619-7ff8.html
注意点
- ANEのAndroidプロジェクトは必ずライブラリプロジェクトにする. プロジェクトのProperties, Androidで"Is Library"をチェックする. (Rクラスのstatic変数の属性からfinalが削除されます)
- aneとapkを作る際にAIR SDK 4.0以上が必要
- adtでaneを作成する際は-platformoptionsオプションでplatform.xmlを指定しないといけない
その他
AIR 4.0から<packagedDependencies>タグも使えるようになったのでaneを作る際にjarファイルを1つにまとめる作業をしなくて良くなった