当前位置: 首页 > news >正文

gomobile build 成apk 遇到的几个问题

是几个gomobile 本身版本编译工具造成的问题,
需要进入go的安装路径 用户路径\go\pkg\mod\golang.org\x\mobile@vxxxxxxx\cmd\gomobile, 修改一下代码,然后 用go build 重新编译出 gomobile.exe 放入到 用户路径\go\bin目录下

1. windows 上打包时 assets目录下的文件 打包后的路径 第一个斜杠是正斜杠,而后面的路径会拼上反斜杠……,导致资源路径斜杠不统一

修改go\pkg\mod\golang.org\x\mobile@v0.0.0-xxxx\cmd\gomobile\build_androidapp.go

把 name := "assets/" + path[len(assetsDir)+1:] 改成 name := "assets/" + filepath.ToSlash(path[len(assetsDir)+1:])

同理 cmd\gomobile\bind_androidapp.go 里 也要改成

name := "assets/" + filepath.ToSlash(path[len(assetsDir)+1:])

2. 用了 gomobile打包 则无法使用 garble做代码混淆

修改 go\pkg\mod\golang.org\x\mobile@vxxxxxxx\cmd\gomobile\build.go 找到2个函数, 把里面的 “go” 换成 “garble”, 且可以加一个默认混淆的参数

func goCmdAt(at string, subcmd string, srcs []string, env []string, args ...string) error {
func goModTidyAt(at string, env []string) error {
 

	cmd := exec.Command("go", subcmd)

 改成
 

	cmd := exec.Command("garble", "-literals", "-tiny", subcmd)


(修改后注意重新build 出 gomobile_garble.exe 放入到go的bin里)

3. 打包出来的apk 里面版本过低 <uses-sdk android:minSdkVersion="16” /> 导致新的操作系统安装失败。

用adb 安装失败: adb: failed to install xxxxx.apk: Failure [INSTALL_FAILED_DEPRECATED_SDK_VERSION: App package must target at least SDK version 23, but found 16]

尝试2种方案都不行:

A.  gomobile build -target=android/arm64 -androidapi 39  发现这样打包 -androidapi 没用, 好像只有 bind 才有用吧……
 

B. xml里如果手动写 <uses-sdk android:minSdkVersion …… /> 编译还报错,不让用: go\bin\gomobile.exe: manual declaration of uses-sdk in AndroidManifest.xml not supported



 

最后 只能找源代码 修改一下, 发现 build时 版本号直接拼接了 死了16:


所以把sdk.go 里的 MinSDK 手动改成23 或者更高, 然后再重新编译 gomobile.exe 则打出来的apk 安装没问题。

http://www.dtcms.com/a/573255.html

相关文章:

  • 化妆品购物网站开发的意义广州网络公司网络推广
  • 稳定的网站服务器租用七牛云存储 wordpress插件
  • 【SAA】SpringAI Alibaba学习笔记(一):SSE与WS的区别以及如何注入多个AI模型
  • 基于企业级建模平台Enterprise Architect的云地融合架构设计
  • 乡镇网站建设内容规划乐山网站制作设计公司
  • 【笔记】解决 “AssertionError: Torch not compiled with CUDA enabled“ 错误
  • 八股训练营第 7 天 | TCP连接如何确保可靠性?拥塞控制是怎么实现的?TCP流量控制是怎么实现的?UDP怎么实现可靠传输?
  • 清除BSS段(ZI段)
  • 数据库安全配置指导
  • 江苏南京建设局官方网站wordpress开发门户网站
  • 科学休息,我用AI写了个vscode养鱼插件:DevFish发布
  • Spring Boot 项目 GitLab CI/CD 自动构建并推送到 Harbor 教程
  • 彻底理解传统卷积,深度可分离卷积
  • 使用VSCode进行SSH远程连接时无法与xxx建立连接
  • 宁波建设工程报名网站陕西省住房与建设厅网站
  • Rust 练习册 6:生命周期与闭包
  • 公司网站开发的流程高端企业网站公司
  • 第二届中欧科学家论坛暨第七届人工智能与先进制造国际会议(AIAM 2025)在德国海德堡成功举办
  • 微硕WSF3085 MOSFET,汽车电动尾门升降强效驱动
  • 5 Prompt Engineering 高阶技巧:构建智能对话系统的核心技术
  • 汽车系统可靠性与技术融合:智能动力总成及机电一体化诊断
  • 网站建设对企业的重要性线上营销的优势和劣势
  • JavaScript 正则表达式全方位解析:从基础到实战
  • 工业相机成像核心参数解析,帧率与曝光时间的权衡关系
  • Kodiak Perps:Berachain 原生永续合约平台上线
  • 分布式版本控制系统Git的安装和使用
  • 用.echarts文件快速实现日历饼图
  • 影刀RPA一键生成竞品分析!AI智能监控,效率提升100倍[特殊字符]
  • 从卡顿到秒查:Java 项目引入 Elasticsearch 实现亿级地址数据的复杂查询实战
  • 国外可以做推广的网站有哪些广州品牌形象设计