Analytics模块不适用于Android Ti.SDK 5.1.2.GA

时间:2016-03-07 15:18:23

标签: android google-analytics appcelerator-mobile

我正在尝试使用3.1.1版本的analytics.google模块,因为版本1.0在Android Lollipop 6.0上无效。

当我启动应用程序时,会显示以下错误:

Failed to run dexer:
[ERROR] :  
[ERROR] :  Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/google/android/gms/maps/LocationSource;
[ERROR] :  Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/google/android/gms/maps/GoogleMap$4;
[ERROR] :  Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/google/android/gms/maps/StreetViewPanorama$OnStreetViewPanoramaChangeListener;
[ERROR] :  Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/google/android/gms/maps/StreetViewPanoramaFragment;
[ERROR] :  Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/google/android/gms/maps/GoogleMap$InfoWindowAdapter;
[ERROR] :  Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/google/android/gms/maps/MapsInitializer;
[ERROR] :  Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/google/android/gms/maps/MapFragment;
[ERROR] :  Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/google/android/gms/maps/GoogleMap$OnMyLocationButtonClickListener;
[ERROR] :  Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/google/android/gms/maps/UiSettings;
[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

似乎google-play-services.jar是重复的,但是如果我删除这个jar我就无法编译该模块。

1 个答案:

答案 0 :(得分:0)

Google Play服务包含在许多Android模块中(例如,ti.cloudpush,ti.map,ti.admob和ti.dfp)。您有库的冲突版本。

我的建议是选择一个版本的google-play-services.jar并强行替换您的项目使用的所有Google Play服务模块中的jar文件。

如果您必须为其中一个appcelerator模块(例如ti.map)更新google-play-services.jar,您可能希望在项目目录中制作模块的副本,而不是更改SDK中的模块。目录

请注意,一些较新的模块现在使用单独的API jar文件进行Google Play服务。这是为了避免完整google-play-services.jar的膨胀(并最大限度地减少dexer可以处理的方法数量)。

但是那些单独的jar文件仍然是版本化的,并且您仍然可能最终发生冲突,因此对于这些模块,只需使用您选择的一个google-play-services.jar文件替换所有单个API jar文件。

如果我用更新的版本替换jar文件,我没有任何问题。您可以针对此文档交叉引用您的jar文件版本:http://www.smorgasbork.com/2015/01/05/google-play-services-sdk-version-history/

最后一点建议 - 如果你因为方法太多而最终遇到了dexer问题,你可以解压缩google-play-services.jar文件并删掉它的一部分(在我的例子中,游戏,驱动器,愿景,钱包和可穿戴设备)。

所有这些都是皇家PITA,我希望Appcelerator能够将此作为最高优先级。