Problém s build-ovaním Ionic (ver.5 s použitím Cordova) aplikácie
Tags: ionic, cordova, build
Published: 2023-01-18 08:58:52

Ak v Ionic (ver.5) používam pluginy frameworku Cordova (napr.geolokačný plugin), narazil som na problém s následným vybuild-ovaním celého projektu do "*.apk" súboru.
Príkaz na pridanie platformy "android" do projektu:

```
ionic cordova platform add android
```
zbehol bez problémov:

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/cx0jtgggkdw4kcptm34c.PNG)

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7hqi4ti8stav4dg9bkbo.PNG)
Ale nasledujúci príkaz, na vybuild-ovanie takéhoto Ionic projektu do *.apk súboru:

```
ionic cordova build android
```
nebol úspešný:

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/e5nzqfw67h6cvqom9cjc.PNG)
Len pre úplnosť doplním verzie jednotlivých framework-ov a nástrojov používaných v tomto projekte:

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/nrswmu6k0aemiqu5mtk8.PNG)

---

Riešenie tohto problému je trochu zlozitejšie, ale skúsim ho popísať.

1.) je potrebné mať zinštalované JDK (Java Development Kit) (použil som veriu 1.8.0 (01/2023), build-ovací nástroj "Gradle" a odporúčam mať (pre jednoduchšiu správu Android SDK verzii a nástrojov) aj "Android Stuio".
2.) pokiaľ tieto veci už nemáme zinštalované, tak postupovať takto:
zo [stránky](https://www.oracle.com/java/technologies/downloads/#java8-windows) si stiahnúť (pre Windows 64bit) súbor "jdk-8u351-windows-x64.exe".
Poznámka: je potrebné mať na Oracle nejaký účet, aby sa dali sťahovať nejaké súbory.
3.) spustiť inštaláciu, tento súbor "jdk-8u351-windows-x64.exe" a ja som si nastavil cieľový adresár:

```
C:\Program Files\Java\jdk1.8.0_351\
C:\Program Files\Java\jre1.8.0_351\
```
4.) overiť správnosť inštalácie, spustením príkazu:

```
java -version
```
čo vypíše verziu Java: 1.8.0_35
5.) teraz si zinštalovať build-ovací nástroj "Gradle", ktorý si stiahnem zo [stránky](https://gradle.org/install/).
Inštalácia spočíva iba v rozbalení balika do vhodného adresára, ja som si to dal do:

```
C:\Gradle
```
6.) teraz si zinštalovať "Android Studio", resp.aspoň SDK Platform komponenty a nástroje. Asi najjednoduchšie sa tieto komponenty pridávajú a manažujú práve cez "Android Studio", takže moja voľba padla práve na "Android Studio" (v 01/2023 to bol súbor "android-studio-2022.1.1.19-windows.exe").
"Android Studio" si stiahnúť zo [stránky](https://developer.android.com/about/versions/11/setup-sdk), resp.priamo zo [stránky](https://developer.android.com/studio).
V inštalácii som zaškrtol komponenty "Android Studio" a "Android Virtual Device" (to budem neskôr používať pri ladení Ionic aplikácii cez android emulátor).

7.) po zinštalovaní "Android Studio" si cez ikonku "SDK Manager" nastaviť (v záložke "SDK Platform" ktoré android verzie budem chcieť používať):

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/09hfdgh9al0bx60g5ifd.PNG)
8.) a v záložke "SDK Tools" si zase vybrať požadované nástroje (je potrebné vybrať aj "Android SDK Build-Tools, ver.30.0.3"):

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ll78q83uskim9omvjpdv.PNG)

9.) odporúčam tiež prekontrolovať nastavenia pre javu vo Windows systémových premenných:

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/p5pzmtn1un1ydbrde2xa.PNG)
tj.nastavenie premennej "JAVA_HOME" a potom nastavenie v "Path":

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/57yas8qwev9m3jvwea8c.PNG)
10.) teraz poďme naspäť do Ionic projektu - je potrebné spustiť príkaz:

```
npm install @ionic/cordova-builders
```
11.) a v Ionic projektovom súbore "angular.json" doplniť nasledujúce:

```
{
  "$schema": "./node_modules/@angular/cli/lib/config/schema.json",
  "version": 1,
  "newProjectRoot": "projects",
  "projects": {
    "app": {
      "projectType": "application",
      "schematics": {},
      "root": "",
      "sourceRoot": "src",
      "prefix": "app",
      "architect": {
     // ... TOTO DOPLNIŤ na koniec sekcie "architect": 
        "ionic-cordova-build": {
          "builder": "@ionic/cordova-builders:cordova-build",
          "options": {
            "browserTarget": "app:build"
          },
          "configurations": {
            "production": {
              "browserTarget": "app:build:production"
            }
          }
        },
        "ionic-cordova-serve": {
          "builder": "@ionic/cordova-builders:cordova-serve",
          "options": {
            "cordovaBuildTarget": "app:ionic-cordova-build",
            "devServerTarget": "app:serve"
          },
          "configurations": {
            "production": {
              "cordovaBuildTarget": "app:ionic-cordova-build:production",
              "devServerTarget": "app:serve:production"
            }
          }
        } 
```
12.) ešte spustiť príkaz, ktorý prekontroluje požiadavky, ktoré má framework "Cordova":

```
cordova requirements
```

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/yu2nq8b35jcihs0cobmk.PNG)
13.) a teraz už je možné (opäť) spustiť príkaz na vybuild-ovanie Ionic projektu do android APK súboru:

```
ionic cordova build android
```
čo by už malo zbehnúť:

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8wj1z51mbgsg1s1xn8aj.PNG)

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vmr7rsjt7t12pt41envh.PNG)
14.) po úspešnom vykonaní, je vytvorený (konečne) súbor APK, tj.vybuild-ovaná Ionic (ver.5) aplikácia (používajúca Cordova pluginy) - tento súbor nájdeme v adresári projektu:

```
..\platforms\android\app\build\outputs\apk\debug\
```

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/anq70df8i85tpsv0qy4s.PNG)
...