Kuidas püsivalt parandada viga „SDK ehitustööriistad on projekti jaoks liiga madal” rakenduses React Native for Android

Või: kuidas mitte lasta oma reageerivat Android-projekti täielikult segi ajada, kui lisate sõltuvuse lõngaga

Üks kõige tüütumaid asju, mis React Native rakenduse väljatöötamisel juhtuda võib, on kardetud Projekti ': app' konfigureerimisel ilmnes probleem, millele järgnes kohe täpsem SDK Ehitustööriistade versioon (xx.xx) on projekti jaoks liiga madal Sõnum 'teie reageerige - loodussõltuvus'.

See võib ilmneda erinevates olukordades:

  • Pärast konkreetse natiivse sõltuvuse värskendamist käitusite reaalajas käivitatavas androidis;
  • Sa käitusid sama käsuga pärast lõnga lihtsalt käivitamist, mis eemaldab sisemiselt kõik käsitsi tehtud värskendused, mida olete teinud kaustas node_modules olevate failide jaoks (lisaks iga dep-i reaalsele värskendamisele);
  • Proovisite ühendada looduslikku moodulit edutult (kas reakt-natiivne link teie-reageerige-natiiv-sõltuvus või käsitsi);

Tõenäoliselt teate juba, kuidas seda käsitsi parandada, kuid tõenäoliselt otsite viisi selle automatiseerimiseks, mitte et kulutada iga päev väärtuslikku minutit.

Pärast seda artiklit saate teada, kuidas sellega hästi hakkama saada.

Üks kõige tüütumaid asju, mis React Native rakenduse väljatöötamisel juhtuda võib, on kardetud Projekti ': app' konfigureerimisel ilmnes probleem, millele järgnes kohe täpsem SDK Ehitustööriistade versioon (xx.xx) on projekti jaoks liiga madal Sõnum 'teie reageerige - loodussõltuvus'.

Manuaalne lahendus

Ausalt, ma ei kavatse raisata teie aega käsitsi lahenduse otsimisele, kuna võrgus on palju muid õpetusi, mis teevad seda üsna hästi (näide), kuid need kõik - vähemalt kõik, kelle mul on õnnestunud leida - pakkuge ainult ajutist lahendust, mida peate korrama iga kord, kui teete ühe ülaltoodud toimingust, või mis veelgi hullem, soovitame teil minna madalamale vanadusastmele (ja aeglasele) versioonile, kui kasulik see võib olla?

Vaatame siis tõelise lahenduse juurde.

Automaatne lahendus

Mis on parem kui lihtne skript, et muuta kõiki compileSdkVersion ja buildToolsVersion kirjeid meie projekti iga react-nativei Android-sõltuvuses? Võiksime selle kirjutada JavaScripti ja seejärel haakida selle meie paketi.jsoni skriptide sektsiooni ja seejärel käivitada see npm-i käivitamisel või lõnga käivitamisel.

Noh ... Ehkki see võib kindlasti olla suur samm edasi, peaksime ikkagi killustikufailid parsima ja neid redigeerima, ilma nende sinta kehtetuks tunnistamata. Noh, selle probleemi õigesti ja puhtalt lahendamiseks peaksime kasutama Gradle buildi tööriista skriptikeelt otse.

Gradle'i projekti API-l on meetod, mida nimetatakse afterEvaluate ja mille kirjeldus on järgmine:

tühine pärast hindamist (sulgemine sulgemine)
Lisab sulgemise, mis kutsutakse üles kohe pärast selle projekti hindamist. Projekt antakse parameetrina sulgemisele. Sellist kuulajat teavitatakse, kui sellele projektile kuuluv ehitamisfail on täidetud. Vanemaprojekt võib näiteks lisada sellise kuulaja oma lapseprojekti. Selline kuulaja saab neid lapseprojekte täiendavalt konfigureerida lapseprojektide oleku põhjal pärast nende ehitamisfailide käivitamist.

Põhimõtteliselt võite mõelda sellele kui Reacti komponentDidMount steroididele.

Õige koht selle meetodi kutsumiseks on teie failis yourReactNativeProject / android / build.gradle alamprojektide {} jaotises.

Teie fail build.gradle peaks välja nägema järgmine:

Lisagem nüüd alamprojektide {} osa ja käivitage meie skript:

Mida me just kirjutasime? Põhimõtteliselt delegeerisime Gradle'ile ülesande kirjutada ümber iga faili build.gradle faili atribuudi android kaks konkreetset kirjet: 'compileSdkVersion' ja 'buildToolsVersion'.

(Ma tean, kõigil neil failidel on sama nimi ja laiend, see võib algajate jaoks olla üsna segane).

Peaksite saama järgmise (enam-vähem) tulemuse iga reaalajasisese Androidi projekti loomuliku sõltuvuse kohta.

See on see, lihtne kui pirukas. Mulle isiklikult meeldib, kui tüütu probleem saab käputäie koodiridadega lahendatud.

Samuti võite olla huvitatud: Reactive Native XCode Beta 8.0-l: kuidas parandada algset ehituse viga.

Mõne minu avatud lähtekoodiga raamatukogu kohta tahaksin kuulda tagasisidet järgmiste teemade kohta:

  • https://github.com/jkomyno/react-native-animated-hide-view
  • https://github.com/jkomyno/react-native-animated-checkbox
  • https://github.com/jkomyno/react-native-universal-picker

Kui teile see õpetus meeldis ja soovite õppida tundma React Native näpunäiteid ja nippe, siis klõpsake kindlasti allolevat nuppu „Jälgi” ja järgige mind Githubis aadressil @jkomyno