2017-11-27 3 views
0

私はペイパルのサービスの統合を使用してアプリケーションを持っていると思ったが、私は常にエラーを取得Paypalの統合 - どのように?

E/AndroidRuntime: FATAL EXCEPTION: main 
               Process: com.example.roxy.asdasd, PID: 28355 
               android.content.ActivityNotFoundException: Unable to find explicit activity class {com.example.roxy.asdasd/com.paypal.android.sdk.payments.PayPalPayment}; have you declared this activity in your AndroidManifest.xml? 

は、ここに私のMainActivity.class

public class MainActivity extends AppCompatActivity { 
    PayPalConfiguration config; 
    String paypalclient =  "AUekxf3GDMWcMQVJwTQXMn6OVZL5uiiL7feATc3_ZxLjfS6Wg4qL7nMcoRcSB10Jpniq1277H6jCIJ1"; 
    Intent service; 
    int payrequestcode = 99; 
    Button k; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    k = (Button)findViewById(R.id.k); 

    config = new PayPalConfiguration() 
      .environment(PayPalConfiguration.ENVIRONMENT_SANDBOX) 
      .clientId(paypalclient); 

    service = new Intent(this, PayPalService.class); 
    service.putExtra(PayPalService.EXTRA_PAYPAL_CONFIGURATION, config); 
    startService(service); 
    k.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      get(); 
     } 
    }); 

} 

public void get(){ 
    PayPalPayment payment = new PayPalPayment(new 
    java.math.BigDecimal(10),"USD", "Test payment with paypal", 
      PayPalPayment.PAYMENT_INTENT_SALE); 

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




intent.putExtra(com.paypal.android.sdk.payments.PaymentActivity.EXTRA_PAYMENT, payment); 
    startActivityForResult(intent, payrequestcode); 
} 

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) 
{ 
    super.onActivityResult(requestCode, resultCode, data); 

    if (requestCode == payrequestcode){ 
     if (resultCode == Activity.RESULT_OK){ 
      PaymentConfirmation confirmation = data.getParcelableExtra(PaymentActivity.EXTRA_RESULT_CONFIRMATION); 

      if (confirmation != null){ 
       String state = confirmation.getProofOfPayment().getState();; 
       if (state.equals("approved")){ 
        Toast.makeText(getApplicationContext(),"Success!", Toast.LENGTH_SHORT).show(); 
       }else { 
        Toast.makeText(getApplicationContext(),"Error!", Toast.LENGTH_SHORT).show(); 
       } 
      }else { 
       Toast.makeText(getApplicationContext(),"Null!", Toast.LENGTH_SHORT).show(); 
      } 


     } 
    } 
} 
} 

だ、これが私のManifest.xml

です
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="com.example.roxy.asdasd"> 

<user-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" /> 

<application 
    android:allowBackup="true" 
    android:icon="@mipmap/ic_launcher" 
    android:label="@string/app_name" 
    android:roundIcon="@mipmap/ic_launcher_round" 
    android:supportsRtl="true" 
    android:theme="@style/AppTheme"> 
    <activity android:name=".MainActivity"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
    <activity android:name=".PaymentActivity" /> 

    <service 
     android:name="com.paypal.android.sdk.payments.PayPalService" 
     android:exported="false" /> 
</application> 

</manifest> 

誰かが私を助けてくれることを願っています。申し訳ありませんが、コーディングでうまくいきません。ちょうど初心者

+0

役に立てば幸いしてみてくださいアクティビティではない –

+0

'明示的なアクティビティクラス{com.example.roxy.asdasd/com.paypal.android.sdk.payments.PayPalPayment}を見つけることができません。あなたのAndroidManifest.xmlでこのアクティビティを宣言しましたか? –

+0

私の答えを確認してください:) – diegoveloper

答えて

0

あなたget方法を確認:あなたはそこにエラーが発生している

public void get(){ 
    PayPalPayment payment = new PayPalPayment(new 
    java.math.BigDecimal(10),"USD", "Test payment with paypal", 
      PayPalPayment.PAYMENT_INTENT_SALE); 

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

を、PayPalPaymentクラスがあなたの代わりにPaymentActivityを使用する必要があり、Activityクラスではありません。

public void get(){ 
    PayPalPayment payment = new PayPalPayment(new 
    java.math.BigDecimal(10),"USD", "Test payment with paypal", 
      PayPalPayment.PAYMENT_INTENT_SALE); 

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

このドキュメントを参照してください:https://github.com/paypal/PayPal-Android-SDK/blob/master/docs/single_payment.md

+0

ありがとう!もっと力を! –

+0

この回答を受け入れたとマークすることを忘れないでください:) – diegoveloper

+0

ありがとうございましたサー! –

0

この

Intent intent = new Intent(PaymentActivity.this, com.paypal.android.sdk.payments.PaymentActivity.class) 
intent.putExtra(PayPalService.EXTRA_PAYPAL_CONFIGURATION, config); 

が、それはあなたがサービスとして 'com.paypal.android.sdk.payments.PayPalService' と宣言している