Replies: 5 comments
-
我暂时在这里放个链接,是我自己测试打包的含 rime-pure 的 Trime 的 apk. https://alist.celestialy.top/ 密码:
|
Beta Was this translation helpful? Give feedback.
-
又了解了一下,本项目似乎针对3.2.9版本的 Trime。 以下尝试回退到“bump到3.2.10”(实质上的3.2.9)的这个commit。 不过如果此项目的九宫格能适配最新版 Trime 就更好了。 尝试记录点击展开报错:
目录下面倒是有个 sed -i 's/repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)/repositoriesMode.set(RepositoriesMode.PREFER_SETTINGS)/' /trime/settings.gradle.kts 报错:
于是 mkdir /cmake
cd /cmake
axel https://github.com/Kitware/CMake/releases/download/v3.22.1/cmake-3.22.1-linux-x86_64.tar.gz
tar -zxf cmake-3.22.1-linux-x86_64.tar.gz
ls
cd /trime
echo "cmake.dir=/cmake/cmake-3.22.1-linux-x86_64">>local.properties 报错:
于是: pacman -S ninja 报错:
考虑到它可能是要 sdk 里面的 cmake 而不是手动下载的,于是: env JAVA_HOME=/usr/lib/jvm/java-8-openjdk sdkmanager 'cmake;3.22.1'
rm /trime/local.properties 然后又编译了一会,报错不变。 新发现:当时版本的 README 也与现在不同,构建方法也不同。 已成功。方法已同步至一楼。 但是它在我的设备上仍然部署失败。这次甚至看不到键盘。 |
Beta Was this translation helpful? Give feedback.
-
由于 osfans/trime#1179 ,最新版的编译要求不再仅是 jdk17-openjdk,也可用 jdk-openjdk(即 jdk21)。 |
Beta Was this translation helpful? Give feedback.
-
@SivanLaai 在此说明,本项目的正常部署方式我也已经尝试,同样无法正常使用,所以不见得是打包的问题,而应该是 Trime 与设备适应性的问题。 我前面放的链接里有新版和旧版(3.2.9),有空的话可试试。 |
Beta Was this translation helpful? Give feedback.
-
感谢分享。很难得有自己钻研的同学,同时把自己的经验分享出来。 其实我已经编译成功了,现在是还没有把文件替换进去,只是还没时间去配置和适配,所以感谢你的工作和时间付出。 你编译的3.2.9的apk,我下来试试看能不能用。安卓12我之前有同学反馈是可以用的,这个问题目前,比较疑惑。 你手机系统先安装3.2.9的同文在配置这个方案能用吗? 另外我把这个issue放到讨论区可能合适一些,看看有没有其他同学一起讨论。 |
Beta Was this translation helpful? Give feedback.
-
在 #115 中, @SivanLaai 提到:
关于打包 apk,由于安卓目前似乎完全没有哪个开源输入法能够提供开箱即用的九宫格拼音,因此我正好也在尝试同样的事。
apk 倒是成功构建了,但是在我的设备上(安卓 12)四叶草九宫格很奇怪,键盘布局始终是 qwerty,并且按字母不出字,按最上面那一排数字反而出字。
怀疑是版本问题——总之有点超出我的能力范围了。
构建
我已经帮你把构建的坑都踩遍了 QAQ,希望你能实现最关键的部分——让打包好的 apk 在输入方案(尤其是九宫格)部署后能正常使用。
以下采用 Arch Linux 的 docker 容器作为构建环境以适应不同的系统。
在宿主机中,获取 trime 仓库。
git clone https://github.com/osfans/trime cd trime
如果需要回退到历史版本,可以用
git log
查看 commit ID,再用git checkout <commit ID>
或git revert <commit ID>
或git reset --hard <commit ID>
。比如,要回退到 3.2.9 版本,可使用
git checkout cb4ab6928df35996027ae71d2de72ca89b66a876
。拉取子模块(如果是 3.2.9 版本,这步会花费很长时间):
运行 Arch Linux 容器(会自动拉取镜像)。
这里用
-v
来映射当前目录到容器内的/trime
,如果你已经 cd 到别的目录了,那么请自行修改。sudo docker run \ -v $(pwd):/trime \ -dt --restart=unless-stopped \ --name arch \ ghcr.io/archlinux/archlinux:latest
进入容器的 shell:
sudo docker exec -it arch /bin/bash
下面配置基本环境。
下面这步要手动选 "y",不能一路回车。
# 指定 jdk8,防止 sdkmanager --licenses 报错 env JAVA_HOME=/usr/lib/jvm/java-8-openjdk sdkmanager --licenses
继续:
以下给 gradle-maven 换镜像源是玄学概率最大的,总是在这里报错。
如果网络条件良好,那就别换镜像源了。
下面这个是对于目前最新版的 Trime 仓库测试通过的,未来或历史版本可能都会出问题。
对于 3.2.9 版本,额外需要以下步骤:
最后:
到这一步,容器环境就准备完毕了。建议备份一下(可选)。
sudo docker commit arch arch/trime:v0.1 # 列出镜像 sudo docker images
现在就可以在容器外直接调用内部的命令来进行构建了。
但是先别急,因为目标是把输入方案与 apk 一起打包。
所以还要手动覆盖 trime 仓库下的
app/src/main/assets/rime
。完成之后,再进入容器(以便调用
.bashrc
,进而确保环境变量正确):sudo docker exec -it -w /trime arch /bin/bash
用以下命令来构建:
如果报错如下(实际查看发现目标文件大小为
0B
,应该是网络问题):则从 https://github.com/boostorg/boost/releases 手动下载所需文件到
app/
下:然后再次构建:
成功构建之后,apk 将被输出到
app/build/outputs/apk/debug
。注意,如果修改了部分文件之后要再次构建,可能需要先清理一下:
以上得到的是调试版本;如果直接
make
则会得到正式版(输出到app/build/outputs/apk/release/
下),但是需要配置签名(见 Trime 官方仓库的说明),否则无法在大多数设备上安装。Fin
水平所限,我只能帮你到这了,加油,祝好运!
Beta Was this translation helpful? Give feedback.
All reactions