在 React Native 中使用 com.github.amitshekhariitbhu.Android-Debug-Database 库可以方便地调试 Android 端的 SQLite 数据库。以下是详细的使用指南:
1. 添加依赖
在 Android 项目的 android/app/build.gradle 文件中添加依赖(仅 debug 模式):
gradle
dependencies {
debugImplementation 'com.github.amitshekhariitbhu:android-debug-database:1.0.6'
}
2. 同步 Gradle
在 Android Studio 中点击 "Sync Now" 或运行命令:
bash
cd android && ./gradlew clean && cd ..
3. 启动应用
在模拟器或真机上运行 React Native 应用的 debug 版本:
bash
react-native run-android
4. 访问调试界面
应用启动后,在浏览器中访问:
text
http://<设备IP>:8080
对于模拟器通常使用 http://localhost:8080 或 http://10.0.2.2:8080
对于真机请确保设备和电脑在同一网络,并使用设备的局域网 IP
5. 高级配置(可选)
修改端口号(在 AndroidManifest.xml 中添加):
xml
<meta-data
android:name="debugDB.port"
android:value="8080" />
启用 HTTPS(可选):
xml
<meta-data
android:name="debugDB.ssl.enabled"
android:value="true" />
6. 使用技巧
查看所有数据库:
页面会列出应用中的所有数据库文件(.db 和 .sqlite)
实时编辑:
可以直接在网页界面修改数据库内容,更改会实时反映到应用中
执行 SQL 命令:
提供 SQL 命令行界面执行自定义查询
导出数据库:
可以下载数据库文件到本地分析
7. 注意事项
仅限调试模式:
确保只在 debug build 中使用,不要发布到生产环境
网络权限:
确保 AndroidManifest.xml 中有网络权限:
xml
<uses-permission android:name="android.permission.INTERNET" />
React Native 特定配置:
如果使用 react-native-sqlite-storage,确保数据库路径是可访问的:
javascript
SQLite.openDatabase({
name: 'mydb.db',
location: 'default' // 或 'Documents' 等可访问位置
});
兼容性:
支持 Android API 14 及以上版本
8. 替代方案
如果遇到问题,可以考虑其他调试方案:
Stetho(Facebook 的调试工具)
adb pull 手动导出数据库文件
React Native Debugger 的数据库插件
9. 常见问题解决
问题:无法连接
检查设备是否和电脑在同一网络
检查防火墙是否阻止了 8080 端口
尝试 adb forward tcp:8080 tcp:8080
问题:看不到数据库
确认数据库文件创建在可访问的位置
检查数据库文件权限是否为可读
这个工具可以极大提升 React Native 应用数据库调试的效率,特别是在处理复杂数据时非常有用