2016-06-14 24 views
1

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

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类e。我需要在上述结构下添加SDK jar吗? 我需要做些什么来解决这个问题。

回答