如何用 Android Studio 从零构建 MoneyManagerEx:JDK17 + Gradle 完整开发者构建指南
如何用 Android Studio 从零构建 MoneyManagerEx:JDK17 + Gradle 完整开发者构建指南
【免费下载链接】android-money-manager-exLocal-first personal finance app. Encrypted, self-hosted, sync across devices.项目地址: https://gitcode.com/gh_mirrors/an/android-money-manager-ex
MoneyManagerEx 是一款本地优先(Local-first)的 Android 个人财务记账应用:数据库加密存储、支持自托管云盘同步、可跨设备使用。如果你想在本地跑起来、改一行代码看看效果,本指南将带你用 JDK17 + Gradle 在 Android Studio 中从零完成 MoneyManagerEx 的开发者构建,最终得到一个可直接安装运行的 APK。🚀
一、环境准备清单
开始之前,请对照下面的清单检查开发环境(耗时约 10 分钟):
| 组件 | 推荐版本 | 说明 |
|---|---|---|
| Android Studio | 当前稳定版 | 官方 IDE,自带 SDK 管理 |
| JDK | JDK 17(Android Studio 内置) | 无需手动安装,使用 embedded JDK 即可 |
| Android SDK | compileSdk 36 / minSdk 29 | 构建时会自动下载所需组件 |
| Git | 任意较新版本 | 用于拉取源码 |
💡 项目官方构建建议就是三句话:使用当前稳定版 Android Studio、使用内置 JDK(JDK17+ 兼容)、使用项目自带的 Gradle Wrapper。见根目录 README.md 中的 Build 章节说明。
二、克隆项目源码
打开终端,执行以下命令克隆仓库:
git clone https://link.gitcode.com/i/8b509a140b44b0b431a25f159e2ceb8d cd android-money-manager-ex项目采用多模块(Multi-module)结构,settings.gradle中声明了 3 个模块:
app/—— 主应用模块,几乎所有业务代码都在这里money/—— 财务计算相关的 Android LibraryMMEX_Icon_Font/—— 图标字体库
三、Android Studio 导入与 Gradle 同步
- 打开 Android Studio →File → Open,选择克隆下来的项目根目录;
- 首次打开时,Android Studio 会自动下载 Gradle Wrapper 指定的Gradle 9.4.0(版本定义在
gradle/wrapper/gradle-wrapper.properties),无需手动安装 Gradle; - 等待右下角的Sync进度条走完。同步过程会拉取依赖:AGP 9.1.0(Android Gradle 插件)、Kotlin 插件、AndroidX 组件等,全部版本集中维护在
gradle/libs.versions.toml(Gradle 版本目录),非常便于排查依赖冲突。
同步完成后,左侧 Project 面板应能看到app、money、MMEX_Icon_Font三个模块,说明导入成功。✅
四、读懂关键构建配置
MoneyManagerEx 的构建行为主要由以下几个文件控制,花 2 分钟了解它们,之后改配置就不迷路了:
根目录build.gradle:SDK 版本总开关
ext { compileSdk = 36 targetSdk = 36 minSdkVersion = 29 // Android 10 }即:面向 Android 10 及以上设备,编译目标为 Android 15(API 36)。
app/build.gradle:三种发行版 Flavor
productFlavors { fdroid { } // F-Droid 版 gplay { applicationIdSuffix ".android" } // Google Play 版 sync { /* 云同步版 */ buildConfigField "boolean", "IS_SYNC_ENABLED", "true" } }这就是为什么发布渠道有多个版本:sync渠道会开启云同步功能(对应应用的自托管同步特性),默认fdroid/gplay渠道则是纯本地模式。
根目录gradle.properties:别忘了 Jetifier
android.useAndroidX=true android.enableJetifier=true # 旧库(如 Caldroid)依赖老 Support Library,必须开启如果你关闭 Jetifier 后出现android.support.v4相关崩溃,原因就是这一行被误关了。
五、一键构建并运行到设备
- 连接 Android 10+ 的真机(开启 USB 调试),或启动模拟器(建议 API 30+);
- 顶部工具栏确认 Build Variant 选择fdroidDebug(首次调试选 debug 类型即可);
- 点击绿色Run ▶按钮。
第一次构建会耗时几分钟(Gradle 配置缓存 + 依赖编译),之后增量构建只需十几秒。运行成功后,你会看到 MoneyManagerEx 的启动页,接下来即可体验创建加密数据库、添加账户、记第一笔交易等完整流程。
六、命令行构建 APK(可选)
如果只想产出 APK 而不启动模拟器,可用项目自带的 Gradle Wrapper:
./gradlew :app:assembleFdroidDebug产物位于app/build/outputs/apk/下,文件名格式为ammx-5.5.9.apk(版本号同样来自app/build.gradle的versionName)。Windows 用户请使用gradlew.bat。
七、常见问题速查
| 现象 | 解决办法 |
|---|---|
同步报Unsupported class file major version | 检查 SDK Manager → Gradle,JDK 位置必须是 Android Studio 内置 JDK 17,不要指向 JDK 8/11 |
| 构建卡在下载 Gradle 分发包 | 确认能访问services.gradle.org,或使用公司代理;Wrapper 只会完整下载一次 |
运行提示INSTALL_FAILED_OLDER_SDK | 设备低于 Android 10(minSdk 29),换一台设备或 API ≥ 29 的模拟器 |
编译报android.support相关错误 | 确认gradle.properties中android.enableJetifier=true未被删除 |
内存不足OutOfMemoryError | gradle.properties中已设-Xmx2048m,机器内存紧张时可临时调低并关闭无关 IDE 窗口 |
八、下一步:熟悉代码与文档
- 业务代码入口在
app/src/main/java/com/money/下,按功能划分子包(账户、交易、预算、报表等); - 数据库加密依赖
sqlcipher-android,定义在app/build.gradle的依赖清单中; - 想深入了解应用概念(账户、分类、预算、定时交易),可阅读用户手册
docs/usermanual/目录下的各章节。
构建到这里就完成了 🎉 你手里的这个 APK,就是一个与 F-Droid / Google Play 上发布同源、可自由修改的 MoneyManagerEx。接下来不妨试着改一个界面文案或加一个按钮,体验完整的「修改 → 构建 → 安装 → 验证」开发循环。
【免费下载链接】android-money-manager-exLocal-first personal finance app. Encrypted, self-hosted, sync across devices.项目地址: https://gitcode.com/gh_mirrors/an/android-money-manager-ex
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
