我需要在我的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
答案 0 :(得分:1)
这只是1.6.1和1.6.0中使用完整jar的问题。在这些版本中添加了一个新的可选依赖项,并且完整的jar会将其选中并编译。现在您可以使用1.5.1,未来的版本将不包括完整jar中的Google Play服务。
目前尚未解决的问题:https://github.com/braintree/braintree_android/issues/35