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 false 和 minifyEnabled 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