发布日期:2025-10-08 20:40浏览次数:
昨天突发奇想试试用Go搞安卓开发,结果被现实啪啪打脸。折腾完才明白网上那些教程为啥只说半截话,今天就把我踩的坑全给你们刨出来!
先按官网说明装最新版Go,结果发现安卓打包要用gomobile。在命令行输入go get */x/mobile/cmd/gomobile,直接报连接超时!骂骂咧咧开了科学上网才拽下来。完事又得运行gomobile init,这步倒挺顺,就是等编译等得我泡面都吃完了。
打开Android Studio下SDK,我寻思偷懒只勾选Android 10,结果打包时报错找不到*。气得我重新勾选API 23到30的SDK Platform,硬盘瞬间少了8个G。更坑的是环境变量,明明在.bashrc里配了ANDROID_HOME,终端死活读不到,重启电脑才解决。
新建*文件,照着官网抄触摸事件代码。本地跑gomobile build直接报type Button has both field and method named Text。查了俩小时发现变量名和内置方法冲突,把Button改成MyButton瞬间打包成功!生成apk才2MB,比Java小了十倍不止。
在模拟器打开apk傻眼了——按钮挤在左上角指甲盖大小!翻gomobile文档发现要用事件坐标换算。硬着头皮写了个pxToDp转换函数,按键区域总算能正常点击。中途还遇到横屏闪退,原来忘了配configChanges=orientation。
自信满满连上小米手机,adb居然不识别!原来要开开发者选项里的USB调试安全开关。安装时又弹出解析包错误,查日志发现gomobile默认打包arm7,现在新手机都是arm64。重新用gomobile build -target=android/arm64才跑起来。
看着手机上颤巍巍的按钮,差点老泪纵横。虽然能跑起来了,但要是做复杂界面还得自己造轮子。劝各位想省事的还是用Flutter,Go这玩意只适合写写后台服务。