Šis straipsnis yra veidrodinis mašininio vertimo straipsnis, spauskite čia norėdami pereiti prie originalaus straipsnio.

Rodinys: 12549|Atsakyti: 0

[joninis] Jonų kūrimo "Android" programų praktika (2): "Android" pakuotė apk

[Kopijuoti nuorodą]
Paskelbta 2018-06-20 10:16:52 | | | |
Diegimas mobiliuosiuose telefonuose ir cordova įskiepių naudojimas

Sukūrėme paprastą žiniatinklio programą ir dabar atliksime tam tikrus pasiruošimus prieš diegdami ją mobiliuosiuose įrenginiuose.
"Ionic" palaiko dvi platformas: "iOS" ir "Android", numatytasis "Ionic" projektas neprideda šių dviejų platformų, turime jį pridėti rankiniu būdu, cd į kūrimo katalogą, kad įvykdytume komandą:


Čia man reikia tik "Android" platformos, o ją įvykdęs vykdysiu komandą, kad peržiūrėčiau jūsų pridėtų platformų sąrašą:

> Cordova platforma LS

Jums buvo atsisakyta telemetrijos. Norėdami tai pakeisti, paleiskite: cordova telemetrija įjungta.
Įdiegtos platformos:
  Android 7.0.0
Galimos platformos:
  naršyklė ~5.0.1
  iOS ~4.5.4
  OSX ~4.0.1
  langai ~5.0.0
  www ^3.12.0



Android paketas


(Jei kyla problemų dėl šios komandos, galite pašalinti -release ir tada derinti kompiliavimą, o kompiliacija bus baigta, DOS parodys apk katalogo vietą)

Jei jūsų protingos akys pastebi šiuos žodžius: Sukurkite sėkmę! Tai reiškia, kad sėkmingai supakavote. Būkite kantrūs, komandinės eilutės pabaigoje bus nurodyta, kur sugeneruotas apk.

Kai dar kartą vykdysiu pakavimo komandą, klaida bus tokia, klaida ta, kad jdk versija yra per aukšta, aš esu "jdk-10.0.1" versija ir galiu iš naujo atsisiųsti ir įdiegti "1.8.0_171" versiją, kad išspręsčiau problemą!!

C:\project\android\myApp>ionic cordova build android --release
Vykdomi programų scenarijai: --platforma android --target cordova
[17:06:47] Kūrimo kūrėjas pradėtas ...
[17:06:47] švarus pradėjo ...
[17:06:47] švarus finišas per 8 ms
[17:06:47] Kopijavimas prasidėjo ...
[17:06:47] prasidėjo giliosios nuorodos ...
[17:06:47] giliosios nuorodos baigėsi per 15 ms
[17:06:47] Transpile pradėjo ...
[17:06:50] Transpile finišavo per 3.71 s
[17:06:50] prasidėjo išankstinis procesas...
[17:06:50] Išankstinis procesas baigtas per 1 ms
[17:06:50] Webpack pradėjo ...
[17:06:51] kopija baigta per 3,96 s
[17:06:56] Webpack finišavo per 5.58 s
[17:06:56] Sass pradėjo ...
Be parinkties "nuo" PostCSS gali sugeneruoti neteisingą šaltinio žemėlapį ir neras Browserslist konfigūracijos. Nustatykite jį į CSS failo kelią arba į "neapibrėžtą", kad išvengtumėte šio įspėjimo.
[17:06:58] Sass finišavo per 2.05 s
[17:06:58] prasidėjo postprocesas ...
[17:06:58] Apdorojimas baigtas per 10 ms
[17:06:58] Lint pradėjo ...
[17:06:58] Kūrimo kūrėjas baigė per 11.65 s
> Cordova sukurti Android --release

Jums buvo atsisakyta telemetrijos. Norėdami tai pakeisti, paleiskite: cordova telemetrija įjungta.
Aptiktas "Android Studio" projektas

ANDROID_HOME=C:\Vartotojai\itsvse_pc\AppData\Local\Android\sdk
JAVA_HOME=C:\Programų failai\Java\jdk-10.0.1
(mazgas:14940) UnhandledPromiseRejectionWarning: Neapdorotas pažado atmetimas (atmetimo ID: 1): CordovaError: JDK 1.8 ar naujesnės versijos reikalavimų patikrinimas nepavyko
(mazgas:14940) [DEP0018] DeprecationWarning: neapdoroti pažadų atmetimai yra nebenaudojami. Ateityje neapdoroti pažadų atmetimai užbaigs Node.js procesą su ne nuliniu išėjimo kodu.

[17:07:01] Lint finišavo per 3.00 s

Dar kartą vykdykite aukščiau pateiktą komandą, nes mano tinklo greitis yra lėtas ir tai pirmas kartas, kai vykdoma, atsisiųskite daug komponentų ir pan. ir vykdykite ją 12 minučių, kaip parodyta paveikslėlyje žemiau:



C:\project\android\myApp\platforms\android\app\build\outputs\apk\release\app-release-unsigned.apk 是编译后的app存放地址。

Nukopijuoju "app-release-unsigned.apk" į savo telefoną ("Huawei Honor 10"), o klaida bus tokia:



Taip yra dėl to, kad programa nepasirašyta ir jos negalima įdiegti.

APK parašas

Kadangi mano "Java" katalogas yra aplinkos kintamuosiuose, man tereikia vykdyti komandą cmd taip:

/*说明:-genkey 产生密钥
       -alias demo.keystore alias demo.keystore
       -keyalg RSA naudoja RSA algoritmą parašams šifruoti
       -galiojimo laikas 40000 Galiojimas 4000 dienų
       -keystore itsvse.keystore failo pavadinimas */

apksigner yra SDK katalogo kūrimo įrankių kataloge. Reikia pažymėti, kad v2 pasirašymo metodas buvo pristatytas tik po "Android 7.0", todėl apksigner.jar galima rasti tik >25 versijos SDK\build-tools\.
Atidarykite cmd, iškirpkite katalogą į SDK\build-tools\Version number\lib (pvz., C:\Users\itsvse_pc\AppData\Local\Android\Sdk\build-tools\28.0.0\lib) ir vykdykite:


Pavyzdys:

D:\>jarsigner -verbose -keystore demo.keystore -signedjar demo_signed.apk demo.apk demo.keystore
/*说明:-verbose 输出签名的详细信息
       -keystore demo.keystore raktų saugyklos vieta
       -signedjar demor_signed.apk demo.apk demo.keystore oficialiai pasirašytas, failas demo_signed sugeneruotas po pasirašymo eilės tvarka trimis parametrais, failo demo.apk pasirašyti, ir keystore demo.keystore.*/



Patikrinkite, ar apk jau pasirašytas:

Mes nukopijuojame pasirašytą "output.apk" failą į telefoną ir tada jį įdiegiame, jį galima įdiegti įprastai ir jis gali veikti normaliai, kaip parodyta paveikslėlyje žemiau:







Ankstesnis:Kaip visiškai pašalinti kelias "Java" versijas
Kitą:ListPage gamykloje nerasta jokių komponentų. Ar įtraukėte jį į
Atsakomybės apribojimas:
Visa programinė įranga, programavimo medžiaga ar straipsniai, kuriuos skelbia Code Farmer Network, yra skirti tik mokymosi ir mokslinių tyrimų tikslams; Aukščiau nurodytas turinys negali būti naudojamas komerciniais ar neteisėtais tikslais, priešingu atveju vartotojai prisiima visas pasekmes. Šioje svetainėje pateikiama informacija gaunama iš interneto, o ginčai dėl autorių teisių neturi nieko bendra su šia svetaine. Turite visiškai ištrinti aukščiau pateiktą turinį iš savo kompiuterio per 24 valandas nuo atsisiuntimo. Jei jums patinka programa, palaikykite autentišką programinę įrangą, įsigykite registraciją ir gaukite geresnes autentiškas paslaugas. Jei yra kokių nors pažeidimų, susisiekite su mumis el. paštu.

Mail To:help@itsvse.com