android - Paypal 服务未启动(沙盒帐户),出现以下错误

标签 android paypal paypal-sandbox android-multidex

我有一个名为示例 Activity 的 Activity 。从该 Activity 我打开了一个 Intent , 那是 navigationlayout1 Activity ,它有一个 paypal 服务。应该像他们(paypal)在他们的例子中所做的那样添加这个服务。 我以前没有使用 multidex 选项时没有遇到过这个问题。

我收到类似“退出值 2”的错误,由于此错误,我的 gradle 无法完成。我已经对其进行了一些研究以清除此错误。

我之前的错误(退出值 2)终于被清除了。我很高兴,因为现在没有错误了。但没想到我得到了这个错误。在过去的三天里,我一直被错误困扰。我一直在研究。现在是时候在这里问了,不要再浪费我的时间了..请帮助我

 E/AndroidRuntime: FATAL EXCEPTION: main
                                                   java.lang.NoClassDefFoundError: okhttp3.internal.tls.OkHostnameVerifier
                                                       at okhttp3.OkHttpClient$Builder.<init>(OkHttpClient.java:364)
                                                       at com.paypal.android.sdk.cc.a(Unknown Source)
                                                       at com.paypal.android.sdk.cm.<init>(Unknown Source)
                                                       at com.paypal.android.sdk.payments.PayPalService.a(Unknown Source)
                                                       at com.paypal.android.sdk.payments.PayPalService.onStartCommand(Unknown Source)
                                                       at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:2656)
                                                       at android.app.ActivityThread.access$1900(ActivityThread.java:141)
                                                       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1331)
                                                       at android.os.Handler.dispatchMessage(Handler.java:99)
                                                       at android.os.Looper.loop(Looper.java:137)
                                                       at android.app.ActivityThread.main(ActivityThread.java:5041)
                                                       at java.lang.reflect.Method.invokeNative(Native Method)
                                                       at java.lang.reflect.Method.invoke(Method.java:511)
                                                       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
                                                       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
                                                       at dalvik.system.NativeStart.main(Native Method)

我的代码是

Intent intent = new Intent(getActivity(), NavigationLayout1.class);

   startActivity(intent);

这个页面会被打开

NavigationLayout1.java

import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.MenuItem;
import android.view.View;
import android.widget.ImageView;

import com.example.administrator.login.R;
import com.example.administrator.login.helper.ImageLoader;
import com.paypal.android.sdk.payments.PayPalConfiguration;
import com.paypal.android.sdk.payments.PayPalPayment;
import com.paypal.android.sdk.payments.PayPalService;
//import com.squareup.picasso.Picasso;


public class NavigationLayout1 extends AppCompatActivity {

    // private static final String TAG = "paymentdemoblog";
    /**
     * - Set to PaymentActivity.ENVIRONMENT_PRODUCTION to move real money.
     *
     * - Set to PaymentActivity.ENVIRONMENT_SANDBOX to use your test credentials
     * from https://developer.paypal.com
     *
     * - Set to PayPalConfiguration.ENVIRONMENT_NO_NETWORK to kick the tires
     * without communicating to PayPal's servers.
     */
    // private static final String CONFIG_ENVIRONMENT =
    // PayPalConfiguration.ENVIRONMENT_NO_NETWORK;
    private static final String CONFIG_ENVIRONMENT = PayPalConfiguration.ENVIRONMENT_SANDBOX;

    // note that these credentials will differ between live & sandbox
    // environments.
    private static final String CONFIG_CLIENT_ID = "Af3H9MCGkS0bGBEdj_KFIeZU6uip0RK0hLEONpOxo73KYpboXEsAiib6kwUXfM2n-W3wr9b2bQ_JRKhB";

    private static final int REQUEST_CODE_PAYMENT = 1;
    private static final int REQUEST_CODE_FUTURE_PAYMENT = 2;

    private static PayPalConfiguration config = new PayPalConfiguration()
            .environment(CONFIG_ENVIRONMENT)
            .clientId(CONFIG_CLIENT_ID)
                    // The following are only used in PayPalFuturePaymentActivity.
            .merchantName("Hipster Store")
            .merchantPrivacyPolicyUri(
                    Uri.parse("https://www.example.com/privacy"))
            .merchantUserAgreementUri(
                    Uri.parse("https://www.example.com/legal"));

    PayPalPayment thingToBuy;

    /****************************************************************Paypal*********************************/



    private String data;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.navigation_layout1);
        Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        data=this.getIntent().getStringExtra("total");

        Intent intent = new Intent(this, PayPalService.class);
        intent.putExtra(PayPalService.EXTRA_PAYPAL_CONFIGURATION, config);
        startService(intent);

        setSupportActionBar(toolbar);
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);

        FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
        fab.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
                        .setAction("Action", null).show();
            }
        });
    }



    @Override
    public boolean onOptionsItemSelected(MenuItem item)
    {

        super.onBackPressed();
        finish();
        return true;
    }

}

但是我得到了上面的错误。请帮助我

最佳答案

您可以添加这两个 gradle 文件 "com.paypal.sdk:paypal-android-sdk:2.14.2"

compile 'com.squareup.okhttp3:okhttp:3.3.1'
compile 'com.squareup.okio:okio:1.8.0'

或者,您可以下载 OkHttp.jarOkio.jar ,并将它们放在您的 libs 文件夹下。

关于android - Paypal 服务未启动(沙盒帐户),出现以下错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36799424/

相关文章:

paypal - 是否可以自定义 Paypal 公司名称/公司名称

使用 setExpressCheckout API 调用的 PayPal 无缝结帐(使用 PayPal 登录)

cordova - 该应用程序未获准在此类付款中使用以下参数

Paypal php传递手续费参数

paypal - 在哪里可以查看 "Sandbox"付款列表?

android - Java jersey RESTful 网络服务请求

android - 有没有办法让 <paper-toolbar> 使用 Polymer Starter Kit 占据屏幕的整个宽度?

android - 在 RecyclerView 中按项目从网络加载数据

android - 发出大型 REST 请求

php - PayPal-PHP-SDK 代码错误