Apache Cordova - konfiguracja środowiska18.X.2014

Spis treści

  1. Przygotowanie środowiska Windows w wersji 7+
  2. Rozszerzenie o platformy dodatkowe
  3. Problemy z Apache Cordova
  4. Strony zawierające ciekawą treść powiązaną tematem

Przygotowanie środowiska Windows w wersji 7+

Aby przygotować sobie środowisko, na którym będzie można tworzyć aplikacje hybrydowe za pomocą Apache Cordova, należy postępować wg. poniższych punktów.

  1. Instalacja NodeJS
  2. Instalacja JDK
  3. Instalacja Ant
  4. (Opcjonalnie) Instalacja Gradle koniecznie w wersji 1.10
  5. Instalacja ADT wraz z środowiskiem Android-19 (4.4.2)
  6. Weryfikacja zmiennych środowiskowych (na podstawie wymagań projektu Apache Cordova).
    ANDROID_HOME="C:\android\sdk"
    ANT_HOME="c:\ant"
    GRADLE_HOME="c:\gradle"
    JAVA_HOME="C:\Program Files\Java\jdk1.8.0_05"
    NODE_PATH="%AppData%\npm\node_modules"
    Oraz rozszerzamy zmienną PATH o wartość:
    %ANDROID_HOME%\platform-tools;%ANDROID_HOME%\tools;%JAVA_HOME%\bin;%ANT_HOME%\bin;%GRADLE_HOME%\bin
    Weryfikujemy instalację wykonując polecenia javac oraz ant. Jeśli coś się nie wykonuje to znaczy, że w konfiguracji jest coś nie tak.
  7. Instalacja pakietu Apache Cordova (tu z pomocą przychodzi istrukcja do PhoneGap)
    \> npm install -g cordova
    \> cordova create hello com.example.hello HelloWorld
    \> cd hello
    \> cordova platform add android
    \> cordova platform ls
    \> cordova build
    \> cordova build android

    Co skutkuje stworzeniem i skompilowaniem przykładowej wersji pod platformę Android do lokalizacji hello\platforms\android\ant-build\CordovaApp-debug.apk. Aplikację później można łatwo zainstalować poleceniem adb install CordovaApp-debug.apk. Jej wygląd przedstawiony jest na obrazku.

    Kod źródłowy aplikacji znajduje się lokalizacji hello\www. Jest tam plik index.html, który można wyświetlić w przeglądarce ale nie pojawi się już komunikat "Device is ready" tylko "Connecting to device".

Rozszerzenie o platformy dodatkowe

Ponieważ w Apache Cordova można tworzyć aplikacje jednocześnie pod wiele platform wygodnie jest rozwijać je najpierw w przeglądarce internetowej a dopiero potem publikować wyniki pracy na urządzenie mobilne (z resztą sama oficjalna strona Apache Cordova stwierdza, że ta platforma jest tylko do celów tworzenia aplikacji - pewnie przynajmniej na razie). Niestety otworzenie pliku www/index.html nie zadziała poprawnie gdyż nie wykonają się zdarzenia standardowo wykonywane na platformie Apache Cordova. Dlatego wpisując polecenie:

\> cordova platform add browser
\> cordova build browser
\> cordova emulate browser

dodajemy nową platformę jako witrynę sieci Web i uruchamiamy w domyślnej przeglądarce. Zamiast emulate można użyć opcji, która uruchamia pod adresem http://localhost:8000/ stronę z której można obejrzeć działanie aplikacji.

\> cordova serve

Problemy z Apache Cordova

Czasami po kompilacji gdzie wcześniej była zmieniana zawartość katalogu www może pojawić się komunikat:

android/sdk/tools/ant/build.xml:659: java.lang.ArrayIndexOutOfBoundsException: 1
[...]
BUILD FAILED
Total time: 2 seconds
Error code 1 for command: ant with args: debug,-f

Rozwiązać poniższy problem można w sposób opisany na StackOverflow: Cordova won't build anymore. Lub jeśli nie mamy ważnych plików związanych z konkretną platformą można wykonać operację usunięcia i dodania platformy raz jeszcze:

\> cordova platform rm android
\> cordova platform add android
\> cordova build android

Strony zawierające ciekawą treść powiązaną tematem