【Titanium】SDK 5.2.0.GAでAndroid向けにビルドするとエラー

titanium_androidTitanium SDK 3.5.1.GAからSDK 5.2.0.GAにあげてビルドしてみると下記エラー

[ERROR] Failed to run dexer:
[ERROR]
[ERROR] Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/google/android/gms/actions/ItemListIntents;
[ERROR] Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/google/android/gms/actions/NoteIntents;
[ERROR] Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/google/android/gms/actions/ReserveIntents;
[ERROR] Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/google/android/gms/actions/SearchIntents;
[ERROR] Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/google/android/gms/auth/AccountChangeEvent;
[ERROR] Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/google/android/gms/auth/AccountChangeEventsRequest;
[ERROR] Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/google/android/gms/auth/AccountChangeEventsResponse;
[ERROR] Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/google/android/gms/auth/GoogleAuthException;
[ERROR] Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/google/android/gms/auth/GoogleAuthUtil;
[ERROR]
[ERROR] UNEXPECTED TOP-LEVEL EXCEPTION:
[ERROR] java.lang.RuntimeException: Translation has been interrupted
[ERROR]         at com.android.dx.command.dexer.Main.processAllFiles(Main.java:608)
[ERROR]         at com.android.dx.command.dexer.Main.runMonoDex(Main.java:311)
[ERROR]         at com.android.dx.command.dexer.Main.run(Main.java:277)
[ERROR]         at com.android.dx.command.dexer.Main.main(Main.java:245)
[ERROR]         at com.android.dx.command.Main.main(Main.java:106)
[ERROR] Caused by: java.lang.InterruptedException: Too many errors
[ERROR]         at com.android.dx.command.dexer.Main.processAllFiles(Main.java:600)
[ERROR]         ... 4 more

 

jarライブラリを2回読み込んでいるのが原因らしい。

gcmjsのモジュールを使っていると起こるので、modulesフォルダにある「lib/google-play-services.jar」を削除してみるとエラーは出ない。

おそらくti.mapのGoogle Play Servicesと競合していると思う。

ti.map/android/lib/をみると
google-play-services-base.jar
google-play-services-map.jar
がある。

Google Play Servicesは分割できるようになったらしい。

google-play-services-gcm.jarを作ることにした

これは次回以降。

 

後で分かったけど、SDK 5.2.0.GAはAndroid4系でエラーになるので、5.1.2.GAを使うことにした。

 

< Related Posts >