115 lines
3.0 KiB
Markdown
115 lines
3.0 KiB
Markdown
# 本地 AAR 调试配置
|
|
|
|
此目录用于放置本地编译的 OpenIM SDK AAR 文件,仅在 example 项目调试时使用。
|
|
|
|
## 快速开始
|
|
|
|
### 步骤 1: 准备 AAR 文件
|
|
|
|
将你的 AAR 文件重命名为 `sdkcore-debug.aar` 并放在本目录:
|
|
|
|
```
|
|
example/libs/
|
|
└── sdkcore-debug.aar (你的本地编译 AAR 文件)
|
|
```
|
|
|
|
### 步骤 2: 复制到 Maven 仓库结构
|
|
|
|
```bash
|
|
# Linux/Mac/Git Bash
|
|
cd example
|
|
cp libs/sdkcore-debug.aar android/local-maven/com/openim/sdkcore/1.0.15-local/sdkcore-1.0.15-local.aar
|
|
|
|
# Windows PowerShell
|
|
cd example
|
|
Copy-Item libs\sdkcore-debug.aar android\local-maven\com\openim\sdkcore\1.0.15-local\sdkcore-1.0.15-local.aar
|
|
```
|
|
|
|
**注意**: POM 文件已自动创建在 `android/local-maven/com/openim/sdkcore/1.0.15-local/sdkcore-1.0.15-local.pom`
|
|
|
|
### 步骤 3: 启用本地 AAR
|
|
|
|
编辑 `example/android/build.gradle`,取消以下两处注释:
|
|
|
|
**1. 第 28 行 - 启用本地 Maven 仓库:**
|
|
```gradle
|
|
maven { url 'file://' + projectDir.absolutePath + '/local-maven' }
|
|
```
|
|
|
|
**2. 第 43-49 行 - 强制使用本地版本:**
|
|
```gradle
|
|
configurations.all {
|
|
resolutionStrategy {
|
|
force 'com.openim:sdkcore:1.0.15-local'
|
|
}
|
|
}
|
|
```
|
|
|
|
### 步骤 4: 清理并重新构建
|
|
|
|
```bash
|
|
cd example
|
|
flutter clean
|
|
flutter pub get
|
|
flutter build apk # 或 flutter run
|
|
```
|
|
|
|
## 更新 AAR 后快速替换
|
|
|
|
如果你已经配置过一次,只是更新了 AAR 文件:
|
|
|
|
```bash
|
|
cd example
|
|
# 复制新的 AAR 文件
|
|
cp libs/sdkcore-debug.aar android/local-maven/com/openim/sdkcore/1.0.15-local/sdkcore-1.0.15-local.aar
|
|
|
|
# 清理并重新构建
|
|
flutter clean && flutter pub get && flutter run
|
|
```
|
|
|
|
## 调试完成后恢复
|
|
|
|
重新注释掉 `example/android/build.gradle` 中的两处配置即可恢复使用远程 Maven 仓库的版本。
|
|
|
|
## 目录结构
|
|
|
|
```
|
|
example/
|
|
├── libs/
|
|
│ ├── README.md (本文件)
|
|
│ └── sdkcore-debug.aar (你的 AAR 源文件)
|
|
└── android/
|
|
└── local-maven/ (Git 已忽略)
|
|
└── com/openim/sdkcore/1.0.15-local/
|
|
├── sdkcore-1.0.15-local.aar (Maven 仓库中的 AAR)
|
|
└── sdkcore-1.0.15-local.pom (Maven 元数据)
|
|
```
|
|
|
|
## 注意事项
|
|
|
|
- ✅ 此配置只影响 example 项目,不会修改插件本身
|
|
- ✅ 切换远程/本地版本只需注释/取消注释即可
|
|
- ✅ `.gitignore` 已配置忽略 `android/local-maven/` 目录
|
|
- ⚠️ 每次修改 AAR 文件后需要重新复制到 Maven 目录并运行 `flutter clean`
|
|
- ⚠️ 确保 AAR 文件名和版本号匹配
|
|
|
|
## 故障排查
|
|
|
|
### 问题 1: Kotlin 版本不兼容错误
|
|
已修复:插件的 `android/build.gradle` 已添加 Kotlin 插件和正确的配置。
|
|
|
|
### 问题 2: "Zip file already contains entry" 错误
|
|
运行彻底清理:
|
|
```bash
|
|
cd example
|
|
flutter clean
|
|
rm -rf build
|
|
cd android && ./gradlew clean
|
|
```
|
|
|
|
### 问题 3: 找不到 sdkcore 依赖
|
|
确保:
|
|
1. `android/build.gradle` 中的本地 Maven 仓库已取消注释
|
|
2. `resolutionStrategy.force` 配置已取消注释
|
|
3. AAR 文件已正确复制到 Maven 目录结构中
|