155 lines
3.5 KiB
Markdown
155 lines
3.5 KiB
Markdown
|
|
# Android 项目编译配置指南
|
|||
|
|
|
|||
|
|
## ✅ 已修复的问题
|
|||
|
|
|
|||
|
|
### 1. AndroidX 依赖配置
|
|||
|
|
**文件**: `gradle.properties`
|
|||
|
|
|
|||
|
|
```properties
|
|||
|
|
android.useAndroidX=true
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
这个配置告诉 Gradle 使用 AndroidX 库而不是旧的支持库。
|
|||
|
|
|
|||
|
|
### 2. Gradle 任务语法
|
|||
|
|
**文件**: `build.gradle.kts` (项目根目录)
|
|||
|
|
|
|||
|
|
修改前(错误):
|
|||
|
|
```gradle
|
|||
|
|
task clean(type: Delete) {
|
|||
|
|
delete rootProject.buildDir
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
修改后(正确):
|
|||
|
|
```kotlin
|
|||
|
|
tasks.register<Delete>("clean") {
|
|||
|
|
delete(rootProject.buildDir)
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 3. AndroidManifest.xml
|
|||
|
|
**文件**: `app/src/main/AndroidManifest.xml`
|
|||
|
|
|
|||
|
|
添加 `xmlns:tools="http://schemas.android.com/tools"` 声明,用于处理存储权限兼容性。
|
|||
|
|
|
|||
|
|
### 4. ProGuard 规则
|
|||
|
|
**文件**: `app/proguard-rules.pro`
|
|||
|
|
|
|||
|
|
创建了完整的混淆规则,保护 AndroidX、Kotlin 和 SkyLink 相关的类。
|
|||
|
|
|
|||
|
|
## 🛠️ 常见问题解决
|
|||
|
|
|
|||
|
|
### 问题 1: "Configuration contains AndroidX dependencies, but android.useAndroidX is not enabled"
|
|||
|
|
**解决方案**: 在 `gradle.properties` 中添加:
|
|||
|
|
```properties
|
|||
|
|
android.useAndroidX=true
|
|||
|
|
android.nonTransitiveRClass=true
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 问题 2: "Android resource linking failed"
|
|||
|
|
**解决方案**:
|
|||
|
|
- 确保 `compileSdk` 和 `targetSdk` 一致(现在都是 34)
|
|||
|
|
- 清理项目:`Build > Clean Project`
|
|||
|
|
- 刷新 Gradle:`File > Sync Now`
|
|||
|
|
|
|||
|
|
### 问题 3: "Cannot find symbol R"
|
|||
|
|
**解决方案**:
|
|||
|
|
- 确保 `activity_main.xml` 中的所有 ID 定义正确
|
|||
|
|
- 检查 `R.layout.activity_main` 是否存在
|
|||
|
|
- 重建项目:`Build > Rebuild Project`
|
|||
|
|
|
|||
|
|
### 问题 4: Gradle 编译错误
|
|||
|
|
**解决方案**:
|
|||
|
|
```bash
|
|||
|
|
# 清理 Gradle 缓存
|
|||
|
|
./gradlew clean
|
|||
|
|
|
|||
|
|
# 重新下载依赖
|
|||
|
|
./gradlew assemble
|
|||
|
|
|
|||
|
|
# 或在 Android Studio 中
|
|||
|
|
Build > Clean Project
|
|||
|
|
Build > Rebuild Project
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 📱 编译和运行
|
|||
|
|
|
|||
|
|
### 方法 1: 使用 Android Studio
|
|||
|
|
|
|||
|
|
1. 打开 Android Studio
|
|||
|
|
2. `File > Open` → 选择 `skylink_android_app`
|
|||
|
|
3. 等待 Gradle 同步完成
|
|||
|
|
4. `Build > Build Bundle(s) / APK(s) > Build APK`
|
|||
|
|
5. `Run > Run 'app'` 安装到设备
|
|||
|
|
|
|||
|
|
### 方法 2: 使用命令行
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
cd skylink_android_app
|
|||
|
|
|
|||
|
|
# 编译 Debug APK
|
|||
|
|
./gradlew assembleDebug
|
|||
|
|
|
|||
|
|
# 编译 Release APK
|
|||
|
|
./gradlew assembleRelease
|
|||
|
|
|
|||
|
|
# 运行测试
|
|||
|
|
./gradlew test
|
|||
|
|
|
|||
|
|
# 安装到设备
|
|||
|
|
./gradlew installDebug
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## ✨ 最终配置清单
|
|||
|
|
|
|||
|
|
- ✅ `gradle.properties` - AndroidX 配置
|
|||
|
|
- ✅ `build.gradle.kts` (root) - 项目级 Gradle 配置
|
|||
|
|
- ✅ `app/build.gradle.kts` - 应用级 Gradle 配置
|
|||
|
|
- ✅ `app/proguard-rules.pro` - 混淆规则
|
|||
|
|
- ✅ `app/src/main/AndroidManifest.xml` - 清单文件
|
|||
|
|
- ✅ `local.properties` - SDK 路径配置
|
|||
|
|
|
|||
|
|
## 🔍 验证配置
|
|||
|
|
|
|||
|
|
在 Android Studio 中运行以下检查:
|
|||
|
|
|
|||
|
|
1. **检查依赖**:
|
|||
|
|
```
|
|||
|
|
Build > Analyze > Run Inspection by Name > Dependency Issues
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
2. **检查 Gradle**:
|
|||
|
|
```
|
|||
|
|
File > Project Structure > 检查各个模块配置
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
3. **检查 Manifest**:
|
|||
|
|
```
|
|||
|
|
在 Manifest 编辑器中查看是否有红色下划线
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 📚 相关文件位置
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
skylink_android_app/
|
|||
|
|
├── gradle.properties # ← AndroidX 配置在这里
|
|||
|
|
├── build.gradle.kts # ← 项目级 Gradle
|
|||
|
|
├── settings.gradle.kts # ← 项目设置
|
|||
|
|
├── local.properties # ← SDK 路径
|
|||
|
|
└── app/
|
|||
|
|
├── build.gradle.kts # ← 应用级 Gradle
|
|||
|
|
├── proguard-rules.pro # ← 混淆规则
|
|||
|
|
└── src/
|
|||
|
|
└── main/
|
|||
|
|
└── AndroidManifest.xml
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
**如果仍有编译错误,请执行**:
|
|||
|
|
1. `Build > Clean Project`
|
|||
|
|
2. `File > Sync Now`
|
|||
|
|
3. `Build > Rebuild Project`
|
|||
|
|
|