# Конвертор координат GPS → APRS, Maidenhead ## Описание проекта Приложение Android для конвертации GPS координат в различные форматы: - Десятичные координаты (широта/долгота) - Градусы, минуты, секунды (DMS) - APRS формат - Maidenhead (QTH локатор) **Технологии:** - Kotlin - Jetpack Compose (Material 3) - Android SDK 34 - Min SDK: 21 --- ## Структура проекта ``` vs2/ ├── app/ │ ├── src/main/ │ │ ├── java/com/example/aprs/ │ │ │ ├── MainActivity.kt # Основной экран │ │ │ └── LocationUtils.kt # Утилиты конвертации │ │ ├── res/ │ │ │ ├── values/ │ │ │ │ ├── strings.xml │ │ │ │ ├── themes.xml │ │ │ │ └── ic_launcher_background.xml │ │ │ └── mipmap-*/ # Иконки приложения │ │ ├── AndroidManifest.xml │ │ └── build.gradle.kts │ └── build/outputs/apk/debug/ # Скомпилированный APK ├── build.gradle.kts ├── gradle.properties ├── settings.gradle.kts └── gradlew # Gradle wrapper ``` --- ## Требования к серверу ### Необходимое ПО: - **Java JDK 17** (`/usr/lib/jvm/java-17-openjdk-amd64`) - **Git** (опционально) - **SSH доступ** с паролем или ключом ### Проверка окружения на сервере: ```bash java -version # Должно показать: openjdk version "17.x.x" ``` --- ## Инструкция по компиляции на сервере ### 1. Подключение к серверу ```bash # Подключение по SSH ssh ua1zbe@192.168.1.46 # Введите пароль: ktdbycrbq1980 ``` ### 2. Загрузка проекта на сервер #### Вариант A: Через rsync (рекомендуется) ```bash # С локальной машины rsync -avz -e ssh /home/ua1zbe/my_aprs_project/vs2/ ua1zbe@192.168.1.46:~/my_aprs_project/vs2/ ``` #### Вариант B: Через git ```bash # На сервере cd ~ git clone my_aprs_project/vs2 ``` ### 3. Сборка APK ```bash # Подключение к серверу ssh ua1zbe@192.168.1.46 # Переход в директорию проекта cd ~/my_aprs_project/vs2 # Установка JAVA_HOME export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64 # Очистка и сборка ./gradlew clean assembleDebug # Или только сборка (быстрее) ./gradlew assembleDebug ``` ### 4. Результат сборки APK файл будет создан в: ``` /home/ua1zbe/my_aprs_project/vs2/app/build/outputs/apk/debug/app-debug.apk ``` Размер: ~12-14 MB ### 5. Проверка сборки ```bash # Проверка существования APK ls -lh ~/my_aprs_project/vs2/app/build/outputs/apk/debug/app-debug.apk # Информация о сборке ./gradlew buildEnvironment ``` --- ## Установка на устройство ### Вариант A: Через ADB (USB) ```bash # Скачать APK с сервера scp ua1zbe@192.168.1.46:~/my_aprs_project/vs2/app/build/outputs/apk/debug/app-debug.apk /home/ua1zbe/my_aprs_project/vs2/ # Установить на устройство adb install -r /home/ua1zbe/my_aprs_project/vs2/app-debug.apk ``` ### Вариант B: Прямая установка с сервера ```bash # На сервере (если есть ADB и подключено устройство) adb install ~/my_aprs_project/vs2/app/build/outputs/apk/debug/app-debug.apk ``` ### Вариант C: Через файловый менеджер 1. Скачать APK с сервера через SFTP/SCP 2. Передать на телефон 3. Установить через файловый менеджер --- ## Полезные команды Gradle ```bash # Очистка сборки ./gradlew clean # Сборка debug версии ./gradlew assembleDebug # Сборка release версии ./gradlew assembleRelease # Запуск тестов ./gradlew test # Проверка зависимостей ./gradlew dependencies # Остановка Gradle daemon ./gradlew --stop # Сборка с логом ./gradlew assembleDebug --info ``` --- ## Решение проблем ### Ошибка: "Could not connect to Kotlin compile daemon" ```bash # Остановить Gradle и попробовать снова ./gradlew --stop ./gradlew clean assembleDebug ``` ### Ошибка: "minSdkVersion cannot be smaller than version 21" ```bash # Jetpack Compose требует API 21+ # Проверить app/build.gradle.kts: # minSdk = 21 ``` ### Ошибка: "resource not found" для иконок ```bash # Проверить наличие директорий mipmap ls app/src/main/res/mipmap-*/ # Пересоздать иконки при необходимости ``` ### Ошибка: "BUILD FAILED - Manifest merger failed" ```bash # Очистить сборку ./gradlew clean # Проверить AndroidManifest.xml на ошибки ``` ### Долгая компиляция ```bash # Использовать daemon (по умолчанию включён) ./gradlew assembleDebug --daemon # Или увеличить память export GRADLE_OPTS="-Xmx2g" ``` --- ## Быстрая сборка (one-liner) ```bash ssh ua1zbe@192.168.1.46 "cd ~/my_aprs_project/vs2 && export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64 && ./gradlew assembleDebug" && scp ua1zbe@192.168.1.46:~/my_aprs_project/vs2/app/build/outputs/apk/debug/app-debug.apk /home/ua1zbe/my_aprs_project/vs2/ && adb install -r /home/ua1zbe/my_aprs_project/vs2/app-debug.apk ``` --- ## Контакты Автор: UA1ZBE Дата: Март 2026