在appcelerator中编译apk时出错

时间:2016-03-07 02:55:01

标签: appcelerator appcelerator-titanium

我尝试使用Appcelerator编译apk但我收到此错误并且我使用模块ti.cloudpush。如何解决它。

目前我正在使用Titanium sdk:5.2.0.GA

  [ERROR] :  Failed to run dexer:
  [ERROR] :  
  [ERROR] :  Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/google/android/gms/dynamic/LifecycleDelegate;
  [ERROR] :  Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/google/android/gms/auth/GoogleAuthUtil;
  [ERROR] :  Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/google/android/gms/auth/UserRecoverableAuthException;
  [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/GooglePlayServicesAvailabilityException;
  [ERROR] :  Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/google/android/gms/auth/UserRecoverableNotifiedException;
  [ERROR] :  Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/google/android/gms/common/GooglePlayServicesUtil;
  [ERROR] :  Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/google/android/gms/common/UserRecoverableException;
  [ERROR] :  Uncaught translation error: java.lang.IllegalArgumentException: already added: Lcom/google/android/gms/common/AccountPicker;
  [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

这里我使用的所有模块都是项目

<modules>
    <module platform="commonjs">ti.cloud</module>
    <module platform="android">dk.napp.drawer</module>
    <module platform="android">ti.admob</module>
    <module platform="android">ti.ga</module>
    <module platform="android">ti.cloudpush</module>
</modules>

由于

2 个答案:

答案 0 :(得分:3)

Google Play服务包含在ti.cloudpush,ti.admob和ti.ga中。您有库的冲突版本。

我的建议是选择一个版本的google-play-services.jar并用这个版本强行替换所有模块中的jar文件。

我实际上将ti.cloudpush模块复制到我的项目目录中,以便我可以直接维护它(并将google-play-services.jar的正确版本保存到我的源代码库中)。

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

BTW - 还有另一个可用于谷歌分析的模块。我使用https://github.com/Sitata/titanium-google-analytics取得了很大的成功。我不确定那个和Ti.GA之间有什么区别(虽然我认为Ben Bahrenburg是一个伟大的Ti开发人员,所以我可能需要研究那个)。

答案 1 :(得分:1)

可能问题在于将嵌入式google play服务转换为cloudpush和admob,尝试删除其中一个模块并查看是否编译。