之前使用模拟器调试都正常,在集成支付宝SDK后,同事说在模拟器上无法安装调试,因为真机资源不够,模拟器不能用实在耽误事,所以就花了点时间研究一下。

报错原因

官方文档的解释

根据文档的说明,应该是cpu架构支持的问题,我们开发使用的都是x86 64位cpu,模拟器也是x86_64,分析支付SDK后,其lib文件夹中包含的blueshieldsdk har包中引用了so文件,且只包含了arm64-v8a,并没有包含x86_64,这就是问题所在了。

解决办法

build-profile.json5 配置文件中增加 x86_64,x86

在libs目录下创建x86_64,x86目录,并将支付宝SDK arm架构下的so文件拷贝进去(目的是安装时让系统认为支持x86 CPU)

重新部署,可以安装成功,但是启动app后报错闪退,查看报错原因为so文件加载失败,因为我们使用的x86的文件其实是arm下的文件,一般导入支付宝SDK模块会在页面顶部使用import,因此在app启动后会立刻加载SDK模块才会导致加载失败闪退,使用动态加载可以规避此问题。

注意:模拟器上运行代码到动态加载时还是会闪退的,此方法只是解决无法再模拟器安装的问题,真机设备目前基本都是arm芯片不会由此问题,但app正式发版时还是需要注意。

动态加载

import('@cashier_alipay/cashiersdk')
.then(module => {
})
.catch((err: BusinessError) => {
})

本文的技术设计和实现都是基于作者工作中的经验总结,如有错误,请留言指正,谢谢。

HarmonyOS Next 集成支付宝SDK后无法在模拟器上安装调试的问题的更多相关文章

  1. iOS开发——高级篇——如何集成支付宝SDK

    一.什么是支付宝 第三方支付平台 和内购非常相似内购是用户将钱付款给苹果,之后苹果分成给商户支付宝是用户将钱付款给支付宝,之后支付宝将钱转入我们的账户 使用支付宝前提购买的物品必须是和应用程序无关的. ...

  2. 集成支付宝SDK流程

    5.2 SDK集成流程 5.2.1 iOS 解压接口压缩文件(文件名是 WS_MOBILE_PAY_SDK_BASE.zip),找到iOS的压缩文件(文件名是支付宝移动支付SDK 标准版(iOS).z ...

  3. 集成支付宝SDK遇到的坑

    一.首先我先把集成过程说一下.小编想说的话:支付宝是我做支付中觉得坑最多的一个,各种编译不过,各种出问题. 废话不多说,进入主题:1.首先当前是下载官方SDK啦,当前你也可以通过cocopods进行导 ...

  4. iOS - (集成支付宝SDK大坑总结)

    其实集成支付宝相对于集成微信支付来说,支付宝算是简单的了,后续有空再去研究微信支付,现目前先总结一下集成支付宝所遇到的坑,其实支付宝的坑也不算太多,细算下来大概5-6个左右,但是其报错方式有点恶心,不 ...

  5. 关于集成支付宝SDK的开发

    下载 首先,你要想找到这个SDK,都得费点功夫.如今的SDK改名叫移动支付集成开发包了,下载页面在 这里 的 "请点此下载集成开发包" Baidu和Googlep排在前面的支付宝开 ...

  6. Android集成支付宝的坑

    Android在集成支付宝sdk的时候, 如果有安装支付宝,则启动支付宝app进行支付: 如果没有安装,则启动 H5PayActivity 进行支付. 记得在AndroidManifest里面配置: ...

  7. 转-android 支付宝SDK集成

    http://blog.csdn.net/kroclin/article/details/40746779 一.前言 最近做的项目刚好要集成支付宝,上网找了很多资料,介绍得感觉不是很全面,所以我经过这 ...

  8. iOS:使用集成的支付宝SDK的支付流程

    基本步骤: 1.先与支付宝签约,获得商户的ID(partner)和账号ID(seller),这一部分主要是又公司负责: 2.下载相应的公钥私钥文件,用来给签名进行加密: 3.下载支付宝集成的SDK,网 ...

  9. 支付宝sdk集成,报系统繁忙 请稍后再试(ALI64)

    移动快捷支付,往往需要集成支付宝的sdk,集成的过程相对简单,只要按照支付宝的文档,进行操作一般不会出问题.            下面主要说明一下,集成sdk后报"系统繁忙 请稍后再试(A ...

  10. ***CodeIgniter框架集成支付宝即时到账支付SDK

    本文为CI集成支付宝即时到账支付接口 1.下载支付宝官方demo ;即时到账交易接口(create_direct_pay_by_user)(DEMO下载) 原文地址:https://doc.open. ...

随机推荐

  1. Google Analytics – GA4 & Tag Manager 概念篇

    前言 当我们设计好网站或者 App 后, 我们要怎样知道这个产品用户是否满意呢? 如果发掘潜在的提升空间呢? 等用户反馈? 投诉? 显然不是上策, 更好的方式是观察. 身为一个产品经理, 我只要看着你 ...

  2. Google Analytics & Ads 学习笔记 2 (gtag 版本)

    gtag 是用来取代之前的 ga 的 但其实它底层就是调用 ga 而已. 只是封装了一个上层. 1. start up script <script async src="https: ...

  3. ChatGPT中Java相关问答(包括Java基础知识和一些面试题)

    分享一个自己学习Java时的记录ChatGPT中的对话:https://chatgpt.com/share/66e8f009-0fd0-8000-b458-8c5812d0b631 包括如下问题 Ho ...

  4. DTO转VO工具

    data工具,实现了对象拷贝 DTO -> VO 只需要实现一个类即可 data-utils data工具,实现了对象拷贝DTO -> VO 解决的问题 Mapstruct需要安插件!!! ...

  5. C# 开源浏览器性能提升,体验Chrome级速度

    前言 使用 C# 和 CefSharp 开发的全功能网页浏览器. 项目介绍 SharpBrowser 是目前最快的开源 C# 网页浏览器! 采用了轻量级的 CEF 渲染器,在呈现网页时甚至比 Goog ...

  6. ChatGPT论文降重Prompt

    你是一个已经阅读过大量论文的论文写作专家.我正在设计一个基于xxx系统.接下来,我将给你一个论文段落,你可以使用调整句子用词.句子结构等方法,重新描述这段话,对文章的内容进行润色,使之更加接近论文的写 ...

  7. Blazor与IdentityServer4的集成

    本文合并整理自 CSDN博主「65号腕」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明. Blazor与IdentityServer4的集成(一) IdentityS ...

  8. Laravel视图共享数据

    Laravel视图共享数据 最近在用lavavel过程中想实现公共头部尾部需要的配置数据在所有的页面中都可以使用,便查看了官方文档,在此做一个总结: 一. 修改 ComposerServiceProv ...

  9. ssr屏幕空间射线追踪

    本轮作业中,我们需要在一个光源为方向光,材质为漫反射 (Diffuse) 的场景 中,完成屏幕空间下的全局光照效果(两次反射). 为了在作业框架中实现上述效果,基于我们需要的信息不同我们会分三阶段 着 ...

  10. 什么是 RBAC 权限控制

    RBAC是Role Based Access Control的英文缩写,意思是 基于角色的访问控制. RBAC实际上就是针对产品去挖掘需求时所用到的Who(角色).What(拥有什么资源).How(有 ...