При сборке и запуске этого приложения на эмуляторе Android оно показывает только Cordova и больше ничего.

Вопрос или проблема

После настройки окружения
Установите Java Development Kit (JDK)

sudo apt install openjdk-17-jdk

Установите переменную окружения JAVA_HOME

readlink -f $(which java)
Установите переменную JAVA_HOME, добавив её в ваш .bashrc или .profile:
echo "export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64" >> ~/.bashrc
echo "export PATH=\$PATH:\$JAVA_HOME/bin" >> ~/.bashrc
source ~/.bashrc

Установите инструменты командной строки Android SDK

wget https://dl.google.com/android/repository/commandlinetools-linux-*.zip
unzip commandlinetools-linux-*.zip

mkdir -p $HOME/Android/sdk/cmdline-tools
mv cmdline-tools $HOME/Android/sdk/cmdline-tools/latest

Проверьте установку

ls $HOME/Android/sdk/cmdline-tools/latest

Обновите переменные окружения

echo "export ANDROID_HOME=$HOME/Android/sdk" >> ~/.bashrc
echo "export PATH=\$PATH:\$ANDROID_HOME/cmdline-tools/latest/bin" >> ~/.bashrc
source ~/.bashrc

Установите переменные окружения ANDROID_HOME и ANDROID_NDK

echo "export ANDROID_HOME=$HOME/Android/sdk" >> ~/.bashrc
echo "export ANDROID_NDK=\$ANDROID_HOME/ndk" >> ~/.bashrc
source ~/.bashrc

Установите платформу Android SDK и инструменты сборки

$HOME/Android/sdk/cmdline-tools/latest/bin/sdkmanager "platforms;android-34" "build-tools;34.0.0"

клонируйте клиент Outline

git clone https://github.com/Jigsaw-Code/outline-apps.git
cd outlineapp
cd client

Когда я хочу выполнить эту строку:

npx cordova requirements android
Вот более ясная версия текста:

Устраните эту ошибку:
Текущая рабочая директория не является проектом на основе Cordova.

Изучив эту ошибку, я нашел решение:

npx cordova create myApp  
cd myApp  
npx cordova platform add android

rm -rf platforms/ plugins/  
npx cordova platform add android

Все файлы присутствуют в папке моего проекта:

myApp/  
├── platforms/  
├── plugins/  
├── www/  
└── config.xml

После выполнения этой команды,

npm run action client/src/cordova/build android

Я не достигаю желаемого результата.

> [email protected] action
> cordova build android client/src/cordova/build android

Платформа "client/src/cordova/build" не была добавлена в этот проект.

При поиске предложений в интернете я получил эту команду вместо предыдущей:

npm run action android

Я успешно собрал APK файл и достиг желаемого результата. Однако при запуске приложения на Android эмуляторе оно показывает только экран Cordova и ничего больше. Я ожидал, что приложение будет полностью установлено и функционально после запуска в эмуляторе.

Ответ или решение

Конечно, давайте подробно разберем вашу ситуацию. Вам удалось создать и собрать приложение с использованием Cordova для Android, но при запуске на эмуляторе вы видите лишь экран Cordova. Давайте обсудим возможные причины и пути их решения.

Теория

Когда вы собираете приложение с помощью Cordova, основная структура состоит из платформ (в данном случае, платформы Android), плагинов и кода приложения, который размещен в папке www. Cordova экранирует ваш веб-контент в нативное мобильное приложение, что позволяет разработчикам использовать веб-технологии, такие как HTML, CSS и JavaScript, для разработки мобильных приложений.

То, что приложение отображает только экран Cordova, говорит о том, что ваше содержимое из папки www не загружается или не правильно отображается. Это может быть связано с различными факторами, включая неправильные пути к файлам, ошибки в коде JavaScript, отсутсвие необходимых плагинов или проблемами в настройке конфигурации.

Пример

Давайте рассмотрим пример наиболее распространенной причины — ошибки в коде JavaScript. Если файл index.html, находящийся в папке www, имеет ссылку на JavaScript-скрипт, который отсутствует или вызывает ошибку, это может привести к отображению лишь «пустого» экрана Cordova.

<!DOCTYPE html>
<html>
<head>
    <title>My Cordova App</title>
    <script type="text/javascript" src="cordova.js"></script>
    <script type="text/javascript" src="js/index.js"></script>
</head>
<body>
    <h1>Welcome to My App</h1>
    <button onclick="myFunction()">Click me</button>

    <script type="text/javascript">
        function myFunction() {
            alert("Hello, world!");
        }
    </script>
</body>
</html>

Если js/index.js отсутствует или имеет синтаксическую ошибку, это может привести к проблемам с загрузкой всего веб-контента.

Применение

  1. Проверка файлов в папке www: Убедитесь, что все необходимые файлы и директории находятся на своих местах. Проверьте пути к файлам, указанным в HTML, чтобы они были корректными и соответствовали именам файлов с учетом регистра.

  2. Проверка оригинального кода:

    • Убедитесь, что index.html загружает все необходимые ресурсы.
    • Проверьте содержимое config.xml на предмет правильности настроек.
    • Используйте инструменты разработчика для проверки ошибок JavaScript, если возникают любые ошибки консоли.
  3. Установка плагинов: Некоторые функции, такие как доступ к файловой системе или интернету, требуют установки соответствующих плагинов Cordova. Проверьте документирование всех необходимых плагинов и их установку с помощью команды:

    npx cordova plugin add <PLUGIN_NAME>
  4. Конфигурация Cordova:

    • Проверьте конфигурационный файл config.xml на наличие всех необходимых разрешений и настроек. Например, разрешение на использование интернет-соединения или доступ к локальным файлам.
  5. Очистка и повторная сборка проекта:

    • Иногда помогает очистка временных файлов и повторная сборка проекта:
    npx cordova clean
    npx cordova build android
  6. Обновление версий:

    • Проверьте, не появились ли обновления Cordova или Android SDK, которые должны быть обновлены. Используйте команды для проверки версии SDK и платформ:
    npx cordova platform update android

Следуя данным рекомендациям, вы сможете системыатически идентифицировать и устранять проблемы, которые мешают вашему приложению работать так, как хотелось бы. Если проблема сохраняется, попробуйте проанализировать логи Android Studio: они могут дать более точную информацию о том, на каком этапе происходит сбой.

Оцените материал
Добавить комментарий

Капча загружается...