Dx编写输出的麻烦:已经准备好...... - 控制台

时间:2015-06-18 12:41:59

标签: java android eclipse e-commerce braintree

  • 布伦特里-API-1.6.1-full.jar
  • 机器人:的minSdkVersion =" 14"
  • 机器人:targetSdkVersion =" 18"

我需要在我的Android应用程序中实现braintree没有问题,但是当我将braintree jar文件复制到我的项目libs文件夹并导入必要的类时,我的应用程序崩溃了。

控制台中的完整错误消息:

  

Dx麻烦写作输出:已经准备好了[2015-06-18 15:31:42 - Dex   Loader]无法执行dex:多个dex文件定义   Landroid /支撑/注解/ AnimRes; [2015-06-18 15:31:42 -   foto.studio]转换为Dalvik格式失败:无法执行   dex:多个dex文件定义Landroid / support / annotation / AnimRes;

我已删除,重新导入所有内容两次,更新了Eclipse软件包以及最新版本,并清理了我的项目。但仍然遇到了这个问题。当我删除braintree库时,我的应用程序恢复正常。

有人遇到同样的问题吗? 谢谢!

===解决方案===

通过迁移到Android Studio结束。一切都按现在的样子运作。

=== UPDATE ===

正如@Luke建议的那样,我已将当前版本的braintree替换为1.5.1,现在我的应用程序已编译,但Braintree未能初始化,我在logcat中遇到以下错误:

  

06-18 18:17:44.581:W / dalvikvm(30518):VFY:无法找到课程   在签名中引用   (Lcom / braintreepayments / api / data / BraintreeEnvironment;)06-18   18:17:44.581:I / dalvikvm(30518):找不到方法   com.braintreepayments.api.data.BraintreeEnvironment.getMerchantId,   从方法中引用   com.braintreepayments.api.BraintreeApi.collectDeviceData 06-18   18:17:44.581:W / dalvikvm(30518):VFY:无法解析虚方法   10802:   LCOM / braintreepayments / API /数据/ BraintreeEnvironment; .getMerchantId   ()Ljava /郎/字符串; 06-18 18:17:44.581:D / dalvikvm(30518):VFY:   替换操作码0x6e在0x0000 06-18 18:17:44.581:E / dalvikvm(30518):   找不到课程' com.braintreepayments.api.data.BraintreeData',   从方法中引用   com.braintreepayments.api.BraintreeApi.collectDeviceData 06-18   18:17:44.581:W / dalvikvm(30518):VFY:无法解析新实例   1492(Lcom / braintreepayments / api / data / BraintreeData;)in   LCOM / braintreepayments / API / BraintreeApi; 06-18 18:17:44.581:   D / dalvikvm(30518):VFY:将代码0x22替换为0x0000 06-18   18:17:44.586:E / dalvikvm(30518):找不到上课   ' com.google.gson.Gson',从方法引用   com.braintreepayments.api.BraintreeApi.getConfigurationString 06-18   18:17:44.586:W / dalvikvm(30518):VFY:无法解析新实例   6903(Lcom / google / gson / Gson;)in   LCOM / braintreepayments / API / BraintreeApi; 06-18 18:17:44.586:   D / dalvikvm(30518):VFY:在0x0004 06-18处替换操作码0x22   18:17:44.586:I / TAG(30518):数据源打开了! 06-18 18:17:44.586:   D / dalvikvm(30518):DexOpt:无法选择在0x02处直接调用0x2a2f   Lcom / braintreepayments / api / BraintreeApi; .collectDeviceData 06-18   18:17:44.586:D / dalvikvm(30518):DexOpt:无法选择直接通话   0xb169在0x06 in   Lcom / braintreepayments / api / BraintreeApi; .getConfigurationString 06-18   18:17:44.586:E / dalvikvm(30518):找不到上课   ' com.google.gson.Gson',从方法引用   com.braintreepayments.api.models.ClientToken.fromString 06-18   18:17:44.586:W / dalvikvm(30518):VFY:无法解析新实例   6903(Lcom / google / gson / Gson;)in   LCOM / braintreepayments / API /模型/ ClientToken; 06-18 18:17:44.586:   D / dalvikvm(30518):VFY:在0x0017 06-18处替换操作码0x22   18:17:44.591:D / dalvikvm(30518):DexOpt:无法选择直接通话   0xb169在0x19 in   LCOM / braintreepayments / API /模型/ ClientToken; .fromString

1 个答案:

答案 0 :(得分:1)

这只是1.6.1和1.6.0中使用完整jar的问题。在这些版本中添加了一个新的可选依赖项,并且完整的jar会将其选中并编译。现在您可以使用1.5.1,未来的版本将不包括完整jar中的Google Play服务。

目前尚未解决的问题:https://github.com/braintree/braintree_android/issues/35