You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android中PayPal PaymentButtonContainer膨胀失败问题求助

PayPal Checkout Android SDK 0.8.1 控件膨胀错误解决方案

问题概述

集成PayPal Checkout Android SDK 0.8.1(minSdk=21),布局中引入com.paypal.checkout.paymentbutton.PaymentButtonContainer控件后,启动PaymentPayPal Activity时触发视图膨胀错误,尝试视图绑定未解决。

相关代码

布局文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".ui.payment.PaymentPayPal">

    <com.paypal.checkout.paymentbutton.PaymentButtonContainer
        android:id="@+id/paymentButtonContainer"
        android:layout_width="match_parent"
        android:layout_height="@dimen/_50dp"
        android:layout_margin="@dimen/_30dp"
        app:layout_constraintTop_toTopOf="parent"/>

</LinearLayout>

Activity代码

class PaymentPayPal : BaseActivity() {

    private val YOUR_CLIENT_ID: String = ""

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_payment_pay_pal)
    }
}

错误信息

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.voterswik/com.voterswik.ui.payment.PaymentPayPal}: android.view.InflateException: Binary XML file line #9 in com.voterswik:layout/activity_payment_pay_pal: Binary XML file line #9 in com.voterswik:layout/activity_payment_pay_pal: Error inflating class com.paypal.checkout.paymentbutton.PaymentButtonContainer

解决步骤

1. 补全PayPal SDK初始化流程

PayPal Checkout控件依赖SDK初始化配置,当前代码缺少初始化步骤,这是膨胀失败的核心原因。需在onCreate中先初始化SDK:

import com.paypal.checkout.PayPalCheckout
import com.paypal.checkout.config.CheckoutConfig
import com.paypal.checkout.config.Environment

class PaymentPayPal : BaseActivity() {

    private val YOUR_CLIENT_ID: String = "你的PayPal客户端ID" // 需填写有效ID

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        // 初始化PayPal Checkout配置
        PayPalCheckout.setConfig(
            CheckoutConfig(
                application = application,
                clientId = YOUR_CLIENT_ID,
                environment = Environment.SANDBOX // 生产环境用Environment.PRODUCTION
            )
        )
        setContentView(R.layout.activity_payment_pay_pal)
    }
}

2. 修正布局属性冲突

布局根容器为LinearLayout,但使用了仅ConstraintLayout支持的app:layout_constraintTop_toTopOf属性,导致属性解析错误。二选一修正:

  • 方案一:改为ConstraintLayout根容器
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".ui.payment.PaymentPayPal">

    <com.paypal.checkout.paymentbutton.PaymentButtonContainer
        android:id="@+id/paymentButtonContainer"
        android:layout_width="match_parent"
        android:layout_height="@dimen/_50dp"
        android:layout_margin="@dimen/_30dp"
        app:layout_constraintTop_toTopOf="parent"/>

</androidx.constraintlayout.widget.ConstraintLayout>
  • 方案二:移除ConstraintLayout专属属性
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".ui.payment.PaymentPayPal">

    <com.paypal.checkout.paymentbutton.PaymentButtonContainer
        android:id="@+id/paymentButtonContainer"
        android:layout_width="match_parent"
        android:layout_height="@dimen/_50dp"
        android:layout_margin="@dimen/_30dp"/>

</LinearLayout>

3. 验证依赖配置

确认build.gradle(Module: app)中正确引入SDK依赖:

implementation 'com.paypal.checkout:android-sdk:0.8.1'

同时确保minSdkVersion设置为21,无依赖冲突。

4. 清理重建项目

执行Android Studio的Clean Project → Rebuild Project操作,清除编译缓存后重新构建项目。

内容的提问来源于stack exchange,提问作者Rishabh Garg

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 01:55:20