基础
- fork原始仓库:EightDoor/siyuan-android: SiYuan Android APP (github.com)
- 参考思源笔记开发指南配置:siyuan/.github/CONTRIBUTING_zh_CN.md at master · siyuan-note/siyuan
环境
-
go环境配置
- 在 Windows 上,需要运行下面命令:
# 启用 Go Modules 功能 $env:GO111MODULE="on" # 配置 GOPROXY 环境变量,以下三选一 # 1. 七牛 CDN $env:GOPROXY="https://goproxy.cn,direct" # 2. 阿里云 $env:GOPROXY="https://mirrors.aliyun.com/goproxy/,direct" # 3. 官方 $env:GOPROXY="https://goproxy.io,direct"
- 测试一下
# 查看代理地址 go env | grep GOPROXY time go get golang.org/x/tour
-
注意:目录名称涉及到 "zhoukai"的都需要更改自己的用户名称,不然无法找到文件
-
下载 android-studio
-
windows配置环境变量
-
变量:
ANDROID_HOME
-
值:
C:\Users\zhoukai\AppData\Local\Android\Sdk
-
-
变量:
ANDROID_NDK_HOME
-
值:
C:\Users\zhoukai\AppData\Local\Android\Sdk\ndk\android-ndk-r23c
-
其中的android-ndk-r23c需要手动在github下载
-
下载完成后,需要放到ndk目录下,
C:\Users\zhoukai\AppData\Local\Android\Sdk\ndk
-
-
Path 编辑环境变量
-
新增
%ANDROID_HOME%\platform-tools
%ANDROID_HOME%\tools
%ANDROID_NDK_HOME%
-
-
进去siyuan项目
kernel
目录cd kernel
- 执行:
gomobile bind --tags fts5 -ldflags '-s -w' -v -o kernel.aar -target='android/arm64' ./mobile/
- 复制
kernel.aar
、app.zip
文件到安卓目录
-
android-studio配置
问题
-
如果提示:
gomobile bind gomobile: ANDROID_NDK_HOME specifies ...\Android\Sdk\ndk\25.2.9519653, which is unusable: unsupported API version 16 (not in 19..33)
- 需要检查
ANDROID_HOME
,ANDROID_SDK_HOME
环境变量是否正确配置
- 需要检查
-
如果提示:
C:\Users\zhoukai\go\bin\gomobile.exe: No compiler for arm was found in the NDK (tried C:\Users\zhoukai\AppData\Local\Android\Sdk\ndk\android-ndk-r23c\toolchains\llvm\prebuilt\windows\bin\armv7a-linux-androideabi23-clang). Make sure your NDK version is >= r19c. Use
sdkmanager --update
to update it.- 需要检查
windows
名称,默认下载的ndk是windows-x86_64
,需要更改为windows
- 需要检查
-
如果提示缺少 gomobile bind
-
安装
go get -u golang.org/x/mobile/cmd/gomobile
go get golang.org/x/mobile/bin
-
如果提示无法识别
javac
-
需要配置javac的环境变量
-
编辑环境变量:Path添加
C:\Program Files\Java\jre-1.8\bin
C:\Program Files\Java\jdk1.8.0_361\bin
- 根据自己的java安装路径配置
- 打开cmd 输入
java
、javac
都能识别
-
文章评论
谢谢博主,我提醒下其他人:必须要用 android-ndk-r23c 这个版本的ndk才行!!!github上最新的版本不行,会报错 unusable , 服了
还有一个点:
安卓sdk的环境变量名应该为: ANDROID_HOME
参考 https://pkg.go.dev/golang.org/x/mobile/cmd/gomobile
The environment variable ANDROID_HOME must be set to the path to Android SDK.
不是这个的话就会去C盘找了