1. 安装Go语言环境
2. 配置GOPATH环境变量
-
通过 go env 查看 Go 的环境变量设置。以下是典型的输出示例:
> go env set GOPATH=D:\Go\gopath set GOMODCACHE=D:\Go\gopath\pkg\mod
-
根据 go env 的输出,将 GOPATH 添加到系统的环境变量中:
- Windows: 右键点击“此电脑”,选择“属性 -> 高级系统设置 -> 环境变量”,将 GOPATH 的路径(如 D:\Go\gopath)添加到 Path 变量中。
- Mac/Linux: 在终端中编辑 ~/.bashrc 或 ~/.zshrc,添加以下内容:
export GOPATH=/Users/youruser/go # 根据你的实际路径替换 export PATH=$PATH:$GOPATH/bin
3. 安装 gomobile 和 gobind
在 Go 1.18 或更高版本中,执行以下命令安装最新的 gomobile 和 gobind:
go install golang.org/x/mobile/cmd/gomobile@latest
go install golang.org/x/mobile/cmd/gobind@latest
4. 初始化 gomobile
执行以下命令完成 gomobile 的初始化:
gomobile init
-
确保 Go 和 gomobile 配置正确:执行
gomobile version
验证工具是否安装成功。 -
安装 Android 开发环境:确保已安装最新版本的 Android Studio。
-
配置 Android NDK:下载适用于 Windows 的 NDK(推荐版本:
r20b
),将其解压到 Android SDK 的ndk-bundle
目录下。例如:C:\Users\Admin\AppData\Local\Android\Sdk\ndk-bundle
-
配置 Make 命令支持(可选):
-
Windows 不自带
make
,可以安装 MinGW64:- 下载 MinGW64 并安装。
- 安装后,将 MinGW 的
bin
目录(如C:\mingw64\bin
)添加到系统的环境变量中。
-
- 如果无法安装
make
,你可以直接使用gomobile bind
命令完成编译。
进入你的项目根目录,例如 openim-sdk-core
,运行以下命令以编译 Android AAR 包:
gomobile bind -v -trimpath -ldflags="-s -w" -o ./open_im_sdk.aar -target=android ./open_im_sdk/ ./open_im_sdk_callback/
- 确保网络畅通,编译过程中需要从 GitHub 下载依赖包。首次运行可能需要较长时间。
- 如果使用 MinGW64,可以执行:
mingw32-make android
- 编译完成后,你会看到类似以下的输出:
aar: jni/armeabi-v7a/libgojni.so aar: jni/arm64-v8a/libgojni.so aar: jni/x86/libgojni.so aar: jni/x86_64/libgojni.so aar: R.txt aar: res/ ...
open_im_sdk.aar
文件会生成在当前目录。
- 将生成的 AAR 包通过 Android Studio 的本地导入方式引入到项目中,即可使用导出的函数和回调接口。
- 安装 Xcode:确保已安装 Xcode(建议版本:15.4 或更高)。
- 安装 Android Studio:确保已安装并配置好 Android SDK 和 NDK(Mac 推荐 NDK 版本为:20.0.5594570)。
进入项目根目录(如 openim-sdk-core
),运行以下命令:
make android
编译完成后,将生成的 AAR 包导入到 Android Studio 项目中。
-
进入项目根目录。
-
执行以下命令以编译 iOS 的 xcframework:
make ios
-
编译完成后,将生成的
.xcframework
文件导入到 Xcode 项目中。
- 卡在写入
go.mod
文件
- 可能是网络原因导致依赖下载失败。尝试设置 Go 的代理:
如果在国内,可以使用:
go env -w GOPROXY=https://proxy.golang.org,direct
go env -w GOPROXY=https://goproxy.cn,direct
- 找不到
make
命令
- 在 Windows 上,确保安装 MinGW64 并使用
mingw32-make
命令代替make
。 - 或直接运行
gomobile bind
命令。
- NDK 版本兼容问题
- 如果遇到 NDK 版本兼容问题,尝试切换到推荐的版本(
r20b
或20.0.5594570
),并确保路径正确。
通过 gomobile
,可以轻松将 Go 语言编写的openim-sdk-core代码打包为 Android 的 AAR 包或 iOS 的 xcframework 库,方便在移动平台中集成和使用。