【问题标题】:Error in Native Interface in codenameone代号中的本机接口错误
【发布时间】:2016-06-14 09:58:22
【问题描述】:

我在 native/android 包下添加了 paypal android SDK。在主项目结构 (com.mycompany.myapp) 中创建了本地接口。在 native/android 下,实现的类使用的是 paypal sdk 类。 我实现的类:

package com.mycompany.myapp;

import com.paypal.android.sdk.payments.PayPalConfiguration;
import com.paypal.android.sdk.payments.PayPalPayment;
import com.paypal.android.sdk.payments.PaymentActivity;
import android.content.Intent;
import android.net.Uri;
import android.app.Activity;
import com.codename1.impl.android.AndroidNativeUtil;
import com.codename1.impl.android.CodenameOneActivity;
import java.math.BigDecimal;

public class MyNativeImpl {
 // 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 = "Aeqc2X1rBIEUtDNqsaRNr0h1neFo9QnNmfgmpA3D32uSLaHpGJu9NV1KfMnFmy7O-_hV47I7ST0SXDW2";

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;
private static Activity activity() {
    return com.codename1.impl.android.AndroidNativeUtil.getActivity();
} 


public String payPalTest() {
 //Activity activity = AndroidNativeUtil.getActivity();      
thingToBuy = new PayPalPayment(new BigDecimal("10"), "USD",
                    "HeadSet", PayPalPayment.PAYMENT_INTENT_SALE);

            Intent intent = new Intent(activity(),PaymentActivity.class);

            intent.putExtra(PaymentActivity.EXTRA_PAYMENT, thingToBuy);
                            activity().startActivityForResult(intent,  REQUEST_CODE_PAYMENT);

    return "test";
}
public boolean isSupported() {
    return false;
}

}

我从主类调用方法:

        MyNative my = (MyNative)NativeLookup.create(MyNative.class);
        if(my!= null){
          String aa =my.payPalTest();
          System.out.println("result::" + aa);
            System.out.println("paypalInt" + my.toString());
        }

apk 构建成功,但在触发代码时出现以下错误: android.content.ActivityNotFound 异常:找不到明确的活动类{com.mycompany.myapp/com.paypal.android.sdk.paymentActivity....

它是在主项目文件夹结构下搜索paypal sdk类。我需要在上述结构下添加SDK jar吗? 我需要做些什么来解决这个问题。

【问题讨论】:

    标签: codenameone


    【解决方案1】:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-08-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多