MifareClassicTool开发环境搭建:Android Studio配置
【免费下载链接】MifareClassicTool An Android NFC app for reading, writing, analyzing, etc. MIFARE Classic RFID tags. 项目地址: https://gitcode.***/gh_mirrors/mi/MifareClassicTool
开发环境准备清单
你是否在搭建MifareClassicTool开发环境时遇到过Gradle同步失败、依赖下载缓慢或编译版本不兼容等问题?本文将系统讲解如何在Android Studio中从零配置开发环境,完成后你将获得:
- 兼容原版项目的Android Studio配置方案
- 解决NFC开发环境特有问题的方法
- 优化编译速度的实战技巧
- 常见错误的诊断与修复指南
环境要求
| 组件 | 最低版本 | 推荐版本 |
|---|---|---|
| Android Studio | Arctic Fox (2020.3.1) | Hedgehog (2023.1.1) |
| Gradle | 7.0 | 7.5 |
| JDK | 11 | 17 |
| Android SDK | API 21 (Lollipop) | API 33 (Tiramisu) |
项目获取与初始化
1. 代码仓库克隆
git clone https://gitcode.***/gh_mirrors/mi/MifareClassicTool
cd MifareClassicTool
2. 目录结构解析
MifareClassicTool/
├── Mifare Classic Tool/ # 主项目目录
│ ├── app/ # 应用模块
│ │ ├── src/main/ # 源代码根目录
│ │ │ ├── AndroidManifest.xml # 应用配置清单
│ │ │ ├── java/ # Java源代码
│ │ │ └── res/ # 资源文件
│ ├── gradle/ # Gradle配置
│ ├── gradlew # Gradle包装器脚本
│ ├── gradle.properties # Gradle属性配置
│ └── settings.gradle # 项目设置
└── tools/ # 辅助工具脚本
Android Studio配置步骤
1. 导入项目
- 启动Android Studio → 选择"Open an existing project"
- 导航至克隆的项目目录 → 选择
Mifare Classic Tool文件夹 - 等待项目同步完成(首次同步可能需要10-15分钟)
2. Gradle配置验证
打开Mifare Classic Tool/gradle.properties文件,确认关键配置:
# 内存分配(根据电脑配置调整)
org.gradle.jvmargs=-Xmx4g -XX:+UseParallelGC -Dfile.encoding=UTF-8
# 性能优化
org.gradle.parallel=true
org.gradle.caching=true
# AndroidX支持(必须启用)
android.useAndroidX=true
3. 依赖管理设置
检查Mifare Classic Tool/settings.gradle中的仓库配置:
dependencyResolutionManagement {
repositoriesMode = RepositoriesMode.FAIL_ON_PROJECT_REPOS
repositories {
google() // Google Maven仓库
mavenCentral() // Maven中央仓库
}
}
4. SDK配置
- 打开
File > Project Structure > SDK Location - 配置Android SDK路径:
- 勾选"Android SDK" → 选择已安装的SDK版本
- 确保勾选"Show Package Details"下的:
- Android SDK Platform 33
- Google APIs Intel x86 Atom System Image
- Android SDK Build-Tools 33.0.2
5. NFC开发环境配置
MifareClassicTool核心功能依赖NFC技术,需进行以下特殊配置:
权限声明验证
在AndroidManifest.xml中确认NFC权限:
<uses-permission android:name="android.permission.NFC" />
<uses-feature
android:name="android.hardware.nfc"
android:required="true" />
技术过滤器配置
验证NFC技术过滤器res/xml/nfc_tech_filter.xml:
<tech-list>
<tech>android.nfc.tech.NfcA</tech>
<tech>android.nfc.tech.MifareClassic</tech>
</tech-list>
编译与运行
1. 构建变体选择
- 打开
Build > Select Build Variant - 配置:
- Module:
app - Build Variant:
debug
- Module:
2. 设备配置
实体设备(推荐)
- 启用开发者选项:设置 → 关于手机 → 点击"版本号"7次
- 开启USB调试:开发者选项 → 勾选"USB调试"
- 连接手机后,在Android Studio中选择设备(右下角)
模拟器配置
- 创建Android虚拟设备(AVD):
- 设备选择:Pixel 5或更高版本
- 系统镜像:选择包含"Google Play"的API 30+镜像
- 注意:模拟器不支持NFC功能,需使用实体设备测试核心功能
3. 首次编译运行
点击工具栏中的"Run"按钮(▶️),首次编译会执行以下步骤:
- 下载缺失的依赖包
- 编译资源文件
- 生成APK文件
- 安装到目标设备
常见问题解决方案
1. Gradle同步失败
Failed to resolve: androidx.app***pat:app***pat:1.4.1
解决方案:
# 清理Gradle缓存
./gradlew cleanBuildCache
# 强制刷新依赖
./gradlew --refresh-dependencies
2. SDK版本不匹配
Manifest merger failed : uses-sdk:minSdkVersion 21 cannot be smaller than version 23 declared in library
解决方案: 修改app/build.gradle中的版本配置:
android {
defaultConfig {
minSdkVersion 21
targetSdkVersion 33
}
}
3. NFC功能无法使用
排查步骤:
- 确认设备支持NFC并已启用
- 检查
AndroidManifest.xml中的NFC权限声明 - 验证NFC过滤器配置是否包含
MifareClassic技术
开发环境优化
1. 编译速度提升
# 在gradle.properties中添加
org.gradle.daemon=true
org.gradle.configureondemand=true
2. 内存配置优化
根据电脑配置调整Gradle内存分配:
# 4GB内存电脑
org.gradle.jvmargs=-Xmx2g ...
# 8GB以上内存电脑
org.gradle.jvmargs=-Xmx6g ...
3. 版本控制设置
推荐配置.gitignore文件:
# Android Studio文件
.idea/
.gradle/
build/
# 本地配置文件
local.properties
# 编译输出
app/build/
环境验证测试
完成配置后,建议运行以下验证步骤:
- 构建并安装应用到设备
- 打开应用,确认主界面显示正常
- 导航至"Read Tag"功能
- 将Mifare Classic卡片贴近设备NFC区域
- 验证是否能读取卡片UID(基础功能测试)
总结与后续步骤
恭喜!你已成功搭建MifareClassicTool开发环境。接下来可以:
-
熟悉项目核心模块:
-
MCReader.java:Mifare卡片读取逻辑 -
ReadTag.java:读取标签Activity -
WriteTag.java:写入标签功能
-
-
尝试实现功能扩展:
- 添加新的密钥文件格式支持
- 优化NFC通信稳定性
- 增强数据编辑功能
-
参与社区贡献:
- 提交bug修复Pull Request
- 改进文档和翻译
- 分享开发经验
如需深入学习NFC开发,推荐参考Android官方文档:NFC | Android Developers
开发提示:定期执行git pull同步最新代码,使用./gradlew test运行单元测试确保核心功能正常。
【免费下载链接】MifareClassicTool An Android NFC app for reading, writing, analyzing, etc. MIFARE Classic RFID tags. 项目地址: https://gitcode.***/gh_mirrors/mi/MifareClassicTool