Android Braintree,Paypal无法正常工作,拒绝重新启动以前失败的类

时间:2018-01-28 15:35:13

标签: android paypal-sandbox braintree

收到此错误

Rejecting re-init on previously-failed class 
java.lang.Class<com.braintreepayments.api.BraintreeFragment$15>: 
java.lang.NoClassDefFoundError: Failed resolution of: 
Lcom/google/android/gms/common/api/GoogleApiClient$ConnectionCallbacks;

我正在使用Kotlin btw,如果这是有用的信息。

复制步骤

  1. 调用此方法

    fun onBraintreeSubmit() { 
        val dropInRequest = DropInRequest().clientToken(clientToken) 
        startActivityForResult(dropInRequest.getIntent(this), REQUEST_CODE_PAY) 
    }
    
  2. 选择Paypal
  3. 点击继续购买Sandbox,我按照设置链接here

    在我的应用级别build.gradle我有

    compile 'com.braintreepayments.api:braintree:2.9.0'
    compile 'com.braintreepayments.api:drop-in:3.+'
    
  4. MainActivity

    在oncreate中我做

    braintreeFragment = BraintreeFragment.newInstance(this@MainActivity, clientToken) 
    braintreeFragment.addListener(this@MainActivity)
    

    我还有一个初始化DropIn的点击监听器

    val dropInRequest = DropInRequest() .clientToken(clientToken) 
    startActivityForResult(dropInRequest.getIntent(this), REQUEST_CODE_PAY)
    

    clientToken是来自文档的示例令牌

    eyJ2ZXJzaW9uIj...ib2ZmIn0=
    

    我也看到问题#109,所以我尝试了编译

    'com.google.android.gms:play-services:8.4.0'
    

    但它似乎打破了我的项目。

    只是想了解导致错误的原因

    谢谢

1 个答案:

答案 0 :(得分:0)

我收到此错误,似乎有几种可能的原因但在我的情况下,我在清单中缺少以下代码:

<activity android:name="com.braintreepayments.api.BraintreeBrowserSwitchActivity"
            android:launchMode="singleTask">
            <intent-filter>
                <action android:name="android.intent.action.VIEW" />
                <category android:name="android.intent.category.DEFAULT" />
                <category android:name="android.intent.category.BROWSABLE" />
                <data android:scheme="${applicationId}.braintree" />
            </intent-filter>
        </activity>

按照规定here