2016-06-14 5 views
1

Ich habe paypal Android SDK unter nativen/android package.Created native Schnittstelle in Hauptprojektstruktur (com.mycompany.myapp) hinzugefügt .Unter nativ/android die implementierte Klasse ist die paypal sdk-Klassen. Meine implementierten Klasse:Fehler bei Native Interface in 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; 
} 

} 

rief ich die Methode von Hauptklasse:

 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()); 
     } 

die apk Build erfolgreich, aber unter Fehler beim Abzug den Code bekommen: android.content.ActivityNotFound Ausnahme: Unable Explizite Aktivitätsklasse zu finden {com.mycompany.myapp/com.paypal.android.sdk.paymentActivity ....

Es sucht die paypal sdk Klassen unter Hauptprojektordner Struktur Muss ich das SDK-Krug unter der genannten Struktur hinzufügen? Was muss ich tun, um das Problem zu beheben?

Antwort