【问题标题】:Unable to find explicit activity class Payment activity with PayPal SDK in Xamarin on Android无法在 Android 上的 Xamarin 中使用 PayPal SDK 找到显式活动类付款活动
【发布时间】:2014-09-13 08:27:04
【问题描述】:

我正在 xamarin 上构建一个移动应用程序,并希望将 paypal sdk 用于我们的支付系统。我在以下位置获取了贝宝 SDK:https://github.com/paypal/PayPal-Android-SDK 要在 Xamarin 中使用它,我需要一个 java 绑定。我之前使用了我在 Xamarin 论坛上找到的一个库(抱歉不能添加超过 2 个链接),因为它不起作用我自己的 java 绑定出现了同样的错误。

我正在关注本教程:https://github.com/paypal/PayPal-Android-SDK/blob/master/docs/single_payment.md

在 OnClickMethod 中,当我尝试启动支付活动时,我得到“无法找到明确的类异常:

Java.Lang.RuntimeException: Unable to find explicit activity class {BeamUp.BeamUp/com.paypal.android.sdk.payments.PaymentActivity}; have you declared this activity in your AndroidManifest.xml?   at at Android.Runtime.JNIEnv.CallNonvirtualVoidMethod (intptr,intptr,intptr,Android.Runtime.JValue[]) <IL 0x00085, 0x00300>  at at Android.App.Activity.StartActivityForResult (Android.Content.Intent,int) <IL 0x000cd, 0x00513>   at BeamUp.MainActivity.<OnCreate>b__0 (object,System.EventArgs) [0x0003e] in f:\Philippe Things\Travail\BeamUp\BeamUp\MainActivity.cs:79   at at Android.Views.View/IOnClickListenerImplementor.OnClick (Android.Views.View) <IL 0x00014, 0x000bb>   at at Android.Views.View/IOnClickListenerInvoker.n_OnClick_Landroid_view_View_ (intptr,intptr,intptr) <IL 0x00013, 0x000f3>   at at (wrapper dynamic-method) object.603476f6-1d1c-4bf4-bf20-03c66e4c1830 (intptr,intptr,intptr) <IL 0x00017, 0x00043>   at --- End of managed exception stack trace ---   at android.content.ActivityNotFoundException: Unable to find explicit activity class {BeamUp.BeamUp/com.paypal.android.sdk.payments.PaymentActivity}; have you declared this activity in your AndroidManifest.xml?   at at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1628) at at android.app.Instrumentation.execStartActivity(Instrumentation.java:1424) at at android.app.Activity.startActivityForResult(Activity.java:3424)  at at android.app.Activity.startActivityForResult(Activity.java:3385)  at at android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity.java:839) at at mono.android.view.View_OnClickListenerImplementor.n_onClick(Native Method)   at at mono.android.view.View_OnClickListenerImplementor.onClick(View_OnClickListenerImplementor.java:29) at at android.view.View.performClick(View.java:4438)   at at android.view.View$PerformClick.run(View.java:18422)   at at android.os.Handler.handleCallback(Handler.java:733)   at at android.os.Handler.dispatchMessage(Handler.java:95)   at at android.os.Looper.loop(Looper.java:136)   at at android.app.ActivityThread.main(ActivityThread.java:5001)   at at java.lang.reflect.Method.invokeNative(Native Method)   at at java.lang.reflect.Method.invoke(Method.java:515)   at at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785) at at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)   at at dalvik.system.NativeStart.main(Native Method)

我的 OnClick 如下所示:

 Buy.Click += (sender, e) =>            {
                 PayPalPayment payment = new PayPalPayment(new Java.Math.BigDecimal("1.75"), "USD", "hipster jeans",
 PayPalPayment.PaymentIntentSale);

                Intent intent = new Intent(this, typeof(PaymentActivity));

                intent.PutExtra(PaymentActivity.ExtraPayment, payment);

                StartActivityForResult(intent, 0);          };

我的 Android 清单如下所示:

 <?xml version="1.0" encoding="utf-8"?> <manifest
 xmlns:android="http://schemas.android.com/apk/res/android"
 android:versionCode="1" android:versionName="1.0" package="BeamUp">
    <uses-sdk android:minSdkVersion="7" android:targetSdkVersion="16" />
    <!-- Google Maps for Android v2 requires OpenGL ES v2 -->
<uses-permission
 android:name="android.permission.INTERNET" />  <uses-permission
 android:name="android.permission.ACCESS_NETWORK_STATE"/> <!-- for
 card.io card scanning -->  <uses-permission
 android:name="android.permission.CAMERA" />    <uses-permission
 android:name="android.permission.VIBRATE" />   <uses-permission
 android:name="android.permission.ACCESS_WIFI_STATE"/>
     <service android:name="com.paypal.android.sdk.payments.PayPalService"
         android:exported="false" />

    <activity
 android:name="com.paypal.android.sdk.payments.PaymentActivity" />
    <activity
 android:name="com.paypal.android.sdk.payments.LoginActivity" />
    <activity
 android:name="com.paypal.android.sdk.payments.PaymentMethodActivity"
 />     <activity
 android:name="com.paypal.android.sdk.payments.PaymentConfirmActivity"
 />     <activity android:name="io.card.payment.CardIOActivity"
           android:configChanges="keyboardHidden|orientation" />    <activity android:name="io.card.payment.DataEntryActivity" />   

    <application android:label="@string/app_name"
 android:icon="@drawable/icon"
 android:theme="@android:style/Theme.NoTitleBar">       <activity
 android:name="com.facebook.LoginActivity"
 android:theme="@android:style/Theme.Translucent.NoTitleBar"
 android:label="@string/app_name" />
    </application>  <uses-sdk android:minSdkVersion="8" />  <meta-data
 android:name="com.facebook.sdk.ApplicationId"
 android:value="@string/app_id" /> </manifest>

【问题讨论】:

  • 嗨,我还计划将 paypal 集成到现有的 android 应用程序中。给出一些我需要集成 paypal 印度商业帐户的建议。在 mpl 和 sdk 中使用哪个。

标签: java c# android paypal xamarin


【解决方案1】:

活动和服务声明需要出现在&lt;application&gt; 标记内。解决这个问题,一切都应该工作。

【讨论】:

  • 完美运行。非常感谢。我想他们应该比:“将此添加到您的 androidmanifest”更清楚。
  • 我有同样的错误,尽管我在 标签@JeffBrateman 中声明了活动和服务
猜你喜欢
  • 2023-03-30
  • 1970-01-01
  • 2018-06-05
  • 2011-12-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多