Native Checkout Paypal Button 未在 android 中为发布 apk 呈现

Posted

技术标签:

【中文标题】Native Checkout Paypal Button 未在 android 中为发布 apk 呈现【英文标题】:Native Checkout Paypal Button not getting rendered for release apk in android 【发布时间】:2021-07-10 08:09:29 【问题描述】:

我已经使用 kotlin 为颤振实现了 Native Checkout SDK。该应用程序适用于调试应用程序。它显示这样的屏幕。

但是当我使用“flutter build apk --release”命令构建发布 apk 时,它不会呈现。它显示加载栏然后消失。我也使用了互联网许可。那么原因是什么,我该如何解决呢?

def localProperties = new Properties()
def localPropertiesFile = rootProject.file('local.properties')
if (localPropertiesFile.exists()) 
localPropertiesFile.withReader('UTF-8')  reader ->
    localProperties.load(reader)



def flutterRoot = localProperties.getProperty('flutter.sdk')
 if (flutterRoot == null) 
throw new GradleException("Flutter SDK not found. Define location with 
flutter.sdk in the local.properties file.")


def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
if (flutterVersionCode == null) 
flutterVersionCode = '1'


def flutterVersionName = localProperties.getProperty('flutter.versionName')
  if (flutterVersionName == null) 
  flutterVersionName = '1.0'
 

 apply plugin: 'com.android.application'
 apply plugin: 'kotlin-android'
 apply plugin: 'kotlin-android-extensions'
 apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"

 android 
  compileSdkVersion 30

sourceSets 
    main.java.srcDirs += 'src/main/kotlin'


 lintOptions 
    disable 'InvalidPackage'
    checkReleaseBuilds false
  

 defaultConfig 
    // TODO: Specify your own unique Application ID 
(https://developer.android.com/studio/build/application-id.html).
    applicationId "com.example.flutterkotlinpypl"
    minSdkVersion 21
    targetSdkVersion 30
    versionCode flutterVersionCode.toInteger()
    versionName flutterVersionName


buildTypes 
    release 
        debuggable true
        // TODO: Add your own signing config for the release build.
        // Signing with the debug keys for now, so `flutter run --release` 
works.
        signingConfig signingConfigs.debug
    


compileOptions 
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8


kotlinOptions 
    jvmTarget = "1.8"



flutter 
source '../..'


dependencies 
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation('com.paypal.checkout:android-sdk:0.1.0')
implementation 'androidx.appcompat:appcompat:1.2.0'
implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
implementation 'com.amplitude:android-sdk:2.31.0'
implementation 'com.squareup.okhttp3:okhttp:4.2.2'

【问题讨论】:

看起来它可能与proguard有关,检查它是否在build.gradle中启用,如果是,请为您的组件添加一个配置条目。 我已经添加了我的 build.gradle,请看@Demonick 如果“checkReleaseBuilds false”被注释/设置为“true”,错误信息是什么? E/com.amplitude.api.AmplitudeClient: 上下文不能为空,在调用 logEvent() 之前用 initialize() 设置上下文 这是唯一的错误。但是应用程序仍然可以完美地在调试模式下运行。仅在我构建发行版时显示问题。 【参考方案1】:

我通过在 android/app/build 中添加 shrinkResources falseminifyEnabled false 解决了这个问题。 buildTypes 下的 gradle 文件。希望对大家有所帮助。

buildTypes 
    release 
    // Signing with the debug keys for now, so `flutter run --release` works.
    shrinkResources false
    minifyEnabled false
    signingConfig signingConfigs.debug
  

【讨论】:

以上是关于Native Checkout Paypal Button 未在 android 中为发布 apk 呈现的主要内容,如果未能解决你的问题,请参考以下文章

Paypal Native Checkout Button 不断加载,然后在 Android 上消失

Native Checkout Paypal Button 未在 android 中为发布 apk 呈现

PayPal Express Checkout.js - Checkout.js 中未定义的 indexOf

PayPal开发文档整理——checkout overview

ReferenceError:当我使用 vuejs 设置 PayPal Checkout 时,未定义 paypal

如何为 PayPal Express Checkout 配置 IPN?