Родные модули не работают правильно в nativescript
Я пытаюсь использовать этот пакет Android, чтобы сделать эффект размытия в nativescript.
https://github.com/wasabeef/Blurry
поэтому в nativescript включена компиляция в моем app.gradle в /app/App_Resources/Android/app.gradle
затем восстановить все работает хорошо и строит отлично.
но когда я начинаю использовать библиотеку, я пытался использовать console.dir(global['jp']), так как оператор импорта библиотеки должен быть
import jp.wasabeef.blurry.Blurry;
поэтому я начинаю видеть, существуют ли функции для вызова, так что это то, что приходит из console.dir
JS: === dump(): dumping members ===
JS: {
JS: "wasabeef": {
JS: "blurry": {
JS: "R": "R()function () { [native code] }"
JS: }
JS: }
JS: }
JS: === dump(): dumping function and properties names ===
JS: === dump(): finished ===
Итак, как вы можете видеть, последняя функция, которая должна заставить меня получить доступ к библиотеке, не существует. Я действительно хочу знать, почему я также попытался создать пакет для Android, чтобы он возвращал мне нужную функцию, но та же проблема, что последняя функция не появляется.
Я также искал плагин в nativescript, я нашел этот https://www.npmjs.com/package/nativescript-blur
но, на самом деле, это не создает фактического размытия, как сказано в документации, и когда я попытался использовать его, возникла та же проблема, и я получил эту ошибку.
JS: ERROR Error: Uncaught (in promise): TypeError: Cannot read property 'init' of undefined
JS: TypeError: Cannot read property 'init' of undefined
JS: at new Blur (file:///data/data/org.nativescript.test2/files/app/tns_modules/nativescript-blur/blur.js:8:39)
JS: at Object.<anonymous> (file:///data/data/org.nativescript.test2/files/app/home/home.component.js:5:12)
JS: at require (<anonymous>:1:266)
JS: at Object.<anonymous> (file:///data/data/org.nativescript.test2/files/app/home/home-routing.module.js:5:24)
JS: at require (<anonymous>:1:266)
JS: at Object.<anonymous> (file:///data/data/org.nativescript.test2/files/app/home/home.module.js:5:29)
JS: at require (<anonymous>:1:266)
JS: at file:///data/data/org.nativescript.test2/files/app/tns_modules/tns-core-modules/globals/globals.js:92:32
JS: at new ZoneAwarePromise (file:///data/data/org.nativescript.test2/files/app/tns_modules/nativescript-angular/zone-js/dist/zone-nativescript.js:777:29)
JS: at Object.import (file:///data/data/org.nativescript.test2/files/app/tns_modules/tns-core-modules/globals/globals.js:90:16)
JS: at SystemJsNgModuleLoader.loadAndCompile (file:///data/data/org.nativescript.test2/files/app/tns_modules/@angular/core/bundles/core.umd.js:6596:29)
JS: at SystemJsNgModuleLoader.load (file:///data/data/org.nativescript.test2/files/app/tns_modules/@angular/core/bundles/core.umd.js:6580:60)
JS: at RouterConfigLoader.loadModuleFactory (file:///data/data/org.nativescript.test2/files/app/tns_modules/@angular/router/bundles/router.umd.js:4611:72)
JS: at RouterConfigLoader.load (file:///data/data/org.nativescript.test2/files/app/tns_modules/@angular/router/bundles/router.umd.js:4591:52)
JS: at MergeMapSubscriber.project (file:///data/data/org.nativescript.test2/files/app/tns_modules/@angular/router/bundles/router.umd.js:2083:74)
Итак, когда я проверил место ошибки в node_modules, я обнаружил, что init была последней функцией в имени пакета, в которой библиотека использовала тот же случай с пакетом, который я пытался использовать выше.
Также я попробовал это в угловом пустом шаблоне и в пустом шаблоне javascript, предполагая, что были какие-то различия при включении библиотек во всем мире.
моя версия nativescript: 3.4.3
- Я использовал эмулятор с Android версии 6
Я не знаю, почему происходит эта странная проблема, я новичок в nativescript. Пожалуйста, мне нужен кто-то, кто скажет мне, как решить эту проблему, или хотя бы просто ответьте на пример приложения, использующего пакет, который я упоминал выше.
Спасибо
1 ответ
Я узнал, что ответ был странным, когда пересборка nativescript по какой-то причине не дает правильной сборки. Итак, как было сказано в решении этой проблемы https://github.com/davecoffin/nativescript-blur/issues/5
вам просто нужно:
делать
tns platform remove android
тогда делай
tns run android
и теперь все должно работать правильно. надеюсь, это поможет, кто когда-либо встречает такую ошибку