174 lines
5.7 KiB
Markdown
174 lines
5.7 KiB
Markdown
# Инструкция по сборке проекта после изменений UI
|
||
|
||
## Шаг 1: Синхронизация проекта
|
||
|
||
1. Откройте проект в Android Studio
|
||
2. Выполните синхронизацию Gradle:
|
||
- **File → Sync Project with Gradle Files**
|
||
- Или нажмите кнопку "Sync Now" если появится уведомление
|
||
|
||
## Шаг 2: Очистка и пересборка
|
||
|
||
1. Очистите проект:
|
||
```
|
||
Build → Clean Project
|
||
```
|
||
|
||
2. Пересоберите проект:
|
||
```
|
||
Build → Rebuild Project
|
||
```
|
||
|
||
## Шаг 3: Проверка импортов
|
||
|
||
Если после синхронизации остаются ошибки импортов:
|
||
|
||
1. Откройте файлы с ошибками
|
||
2. Поставьте курсор на красное подчеркивание
|
||
3. Нажмите **Alt + Enter** (Windows/Linux) или **Option + Enter** (Mac)
|
||
4. Выберите "Import class"
|
||
|
||
## Шаг 4: Invalidate Caches (если нужно)
|
||
|
||
Если проблемы сохраняются:
|
||
|
||
1. **File → Invalidate Caches / Restart...**
|
||
2. Выберите "Invalidate and Restart"
|
||
3. Дождитесь перезапуска Android Studio
|
||
|
||
## Проверка созданных файлов
|
||
|
||
### Адаптеры (должны быть в `app/src/main/java/com/yaros/RadioUrl/adapters/`)
|
||
- ✅ RadioStationAdapter.kt
|
||
- ✅ RecommendedStationAdapter.kt
|
||
- ✅ CategoryAdapter.kt
|
||
- ✅ CategoryGridAdapter.kt
|
||
- ✅ NewsAdapter.kt
|
||
|
||
### Модели (должны быть в `app/src/main/java/com/yaros/RadioUrl/models/`)
|
||
- ✅ RadioStation.kt
|
||
- ✅ CategoryWithCount.kt
|
||
|
||
### Layout файлы (должны быть в `app/src/main/res/layout/`)
|
||
- ✅ item_radio_station.xml (уже был)
|
||
- ✅ item_recommended_station.xml
|
||
- ✅ item_category.xml
|
||
- ✅ item_category_grid.xml
|
||
- ✅ item_news.xml
|
||
- ✅ fragment_catalog.xml (обновлен)
|
||
- ✅ fragment_category_stations.xml (обновлен)
|
||
|
||
### Drawable ресурсы (должны быть в `app/src/main/res/drawable/`)
|
||
- ✅ gradient_overlay.xml
|
||
- ✅ ic_station_placeholder.xml
|
||
- ✅ ic_chevron_left_24dp.xml
|
||
|
||
## Возможные проблемы и решения
|
||
|
||
### Проблема 1: "Unresolved reference 'adapters'"
|
||
|
||
**Решение:**
|
||
1. Убедитесь, что папка `adapters` создана в правильном месте
|
||
2. Выполните Sync Project with Gradle Files
|
||
3. Если не помогло - Invalidate Caches
|
||
|
||
### Проблема 2: "Cannot resolve symbol 'R'"
|
||
|
||
**Решение:**
|
||
1. Build → Clean Project
|
||
2. Build → Rebuild Project
|
||
3. Проверьте, нет ли ошибок в XML файлах
|
||
|
||
### Проблема 3: Ошибки в layout файлах
|
||
|
||
**Решение:**
|
||
1. Откройте каждый layout файл
|
||
2. Проверьте, что все ID корректны
|
||
3. Убедитесь, что используются правильные виджеты
|
||
|
||
### Проблема 4: "Unresolved reference" для Station
|
||
|
||
**Причина:** В проекте есть два класса Station:
|
||
- `com.yaros.RadioUrl.data.Station` (API модель)
|
||
- `com.yaros.RadioUrl.core.Station` (Core модель)
|
||
|
||
**Решение:** Используйте алиасы импорта:
|
||
```kotlin
|
||
import com.yaros.RadioUrl.data.Station as ApiStation
|
||
import com.yaros.RadioUrl.core.Station
|
||
```
|
||
|
||
## Тестирование
|
||
|
||
После успешной сборки:
|
||
|
||
1. Запустите приложение
|
||
2. Перейдите в раздел "Каталог"
|
||
3. Проверьте загрузку станций из API
|
||
4. Попробуйте добавить станцию в коллекцию
|
||
5. Проверьте категории
|
||
|
||
## Дополнительные настройки
|
||
|
||
### Добавление библиотеки для загрузки изображений
|
||
|
||
В `app/build.gradle` добавьте одну из библиотек:
|
||
|
||
**Glide (рекомендуется):**
|
||
```gradle
|
||
dependencies {
|
||
implementation 'com.github.bumptech.glide:glide:4.16.0'
|
||
annotationProcessor 'com.github.bumptech.glide:compiler:4.16.0'
|
||
}
|
||
```
|
||
|
||
**Или Coil:**
|
||
```gradle
|
||
dependencies {
|
||
implementation 'io.coil-kt:coil:2.5.0'
|
||
}
|
||
```
|
||
|
||
### Реализация imageLoader
|
||
|
||
После добавления библиотеки, обновите imageLoader в фрагментах:
|
||
|
||
**С Glide:**
|
||
```kotlin
|
||
imageLoader = { imageView, url ->
|
||
Glide.with(imageView.context)
|
||
.load(url)
|
||
.placeholder(R.drawable.ic_station_placeholder)
|
||
.error(R.drawable.ic_station_placeholder)
|
||
.into(imageView)
|
||
}
|
||
```
|
||
|
||
**С Coil:**
|
||
```kotlin
|
||
imageLoader = { imageView, url ->
|
||
imageView.load(url) {
|
||
placeholder(R.drawable.ic_station_placeholder)
|
||
error(R.drawable.ic_station_placeholder)
|
||
}
|
||
}
|
||
```
|
||
|
||
## Контрольный список
|
||
|
||
- [ ] Синхронизация Gradle выполнена
|
||
- [ ] Проект очищен и пересобран
|
||
- [ ] Все импорты корректны
|
||
- [ ] Нет ошибок компиляции
|
||
- [ ] Приложение запускается
|
||
- [ ] Каталог загружает станции
|
||
- [ ] Станции добавляются в коллекцию
|
||
- [ ] Категории отображаются корректно
|
||
|
||
## Поддержка
|
||
|
||
Если возникли проблемы:
|
||
1. Проверьте файл `UI_CHANGES_SUMMARY.md` для деталей изменений
|
||
2. Убедитесь, что все файлы созданы в правильных директориях
|
||
3. Проверьте логи Android Studio на наличие специфичных ошибок
|