NativeScript 已弃用 NFC (RFID) 插件的问题
Issues with deprecated NFC (RFID) Plugin with NativeScript
我将开始使用 NativeScript Vue 为 Android 平板电脑编写移动应用程序。我想测试 NFC 插件,但它似乎太旧了。
这是插件的存储库:
https://github.com/EddyVerbruggen/nativescript-nfc
我在我的应用程序中实施了一种方法来检查插件是否有效。但是在 NativeScript Sidekick 的后台我得到了一些错误。
LOG from device Galaxy Tab Active2: '\'NativeScript-Vue has
"Vue.config.silent" set to true, to see output logs set it to false.\''
LOG from device Galaxy Tab Active2: '\'Yes\''
LOG from device Galaxy Tab Active2: An uncaught Exception occurred on
"main" thread.
Calling js method run failed
Error: java.lang.SecurityException: NFC permission required: Neither user
10155 nor current process has android.permission.NFC.
android.os.Parcel.readException(Parcel.java:2029)
android.os.Parcel.readException(Parcel.java:1975)
android.nfc.INfcAdapter$Stub$Proxy.setForegroundDispatch(INfcAdapter.java:1012)
android.nfc.NfcAdapter.enableForegroundDispatch(NfcAdapter.java:1648)
com.tns.Runtime.callJSMethodNative(Native Method)
com.tns.Runtime.dispatchCallJSMethodNative(Runtime.java:1242)
com.tns.Runtime.callJSMethodImpl(Runtime.java:1122)
com.tns.Runtime.callJSMethod(Runtime.java:1109)
com.tns.Runtime.callJSMethod(Runtime.java:1089)
com.tns.Runtime.callJSMethod(Runtime.java:1081)
com.tns.gen.java.lang.Runnable.run(Runnable.java:17)
android.os.Handler.handleCallback(Handler.java:790)
android.os.Handler.dispatchMessage(Handler.java:99)
android.os.Looper.loop(Looper.java:164)
android.app.ActivityThread.main(ActivityThread.java:7000)
java.lang.reflect.Method.invoke(Native Method)
com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:441)
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1408)
StackTrace:
Frame: function:'', file:'file:///data/data/org.nativescript.preview/files/app/vendor.js', line: 672, column: 31
Frame: function:'invoke', file:'file:///data/data/org.nativescript.preview/files/app/tns_modules/tns-core-modules/timer/timer.js', line: 19, column: 45
Frame: function:'run', file:'file:///data/data/org.nativescript.preview/files/app/tns_modules/tns-core-modules/timer/timer.js', line: 23, column: 7
at com.tns.Runtime.callJSMethodNative(Native Method)
at com.tns.Runtime.dispatchCallJSMethodNative(Runtime.java:1242)
at com.tns.Runtime.callJSMethodImpl(Runtime.java:1122)
at com.tns.Runtime.callJSMethod(Runtime.java:1109)
at com.tns.Runtime.callJSMethod(Runtime.java:1089)
at com.tns.Runtime.callJSMethod(Runtime.java:1081)
at com.tns.gen.java.lang.Runnable.run(Runnable.java:17)
at android.os.Handler.handleCallback(Handler.java:790)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:7000)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:441)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1408)
Caused by: java.lang.SecurityException: NFC permission required: Neither user 10155 nor current process has android.permission.NFC.
at android.os.Parcel.readException(Parcel.java:2029)
at android.os.Parcel.readException(Parcel.java:1975)
at android.nfc.INfcAdapter$Stub$Proxy.setForegroundDispatch(INfcAdapter.java:1012)
at android.nfc.NfcAdapter.enableForegroundDispatch(NfcAdapter.java:1648)
... 14 more
LOG from device Galaxy Tab Active2: '\'NativeScript-Vue has "Vue.config.silent" set to true, to see output logs set it to false.\''
LOG from device Galaxy Tab Active2: '\'OnTagDiscovered listener added\''
LOG from device Galaxy Tab Active2: An uncaught Exception occurred on "main" thread.
Calling js method run failed
Error: java.lang.SecurityException: NFC permission required: Neither user 10155 nor current process has android.permission.NFC.
android.os.Parcel.readException(Parcel.java:2029)
android.os.Parcel.readException(Parcel.java:1975)
android.nfc.INfcAdapter$Stub$Proxy.setForegroundDispatch(INfcAdapter.java:1012)
android.nfc.NfcAdapter.enableForegroundDispatch(NfcAdapter.java:1648)
com.tns.Runtime.callJSMethodNative(Native Method)
com.tns.Runtime.dispatchCallJSMethodNative(Runtime.java:1242)
com.tns.Runtime.callJSMethodImpl(Runtime.java:1122)
com.tns.Runtime.callJSMethod(Runtime.java:1109)
com.tns.Runtime.callJSMethod(Runtime.java:1089)
com.tns.Runtime.callJSMethod(Runtime.java:1081)
com.tns.gen.java.lang.Runnable.run(Runnable.java:17)
android.os.Handler.handleCallback(Handler.java:790)
android.os.Handler.dispatchMessage(Handler.java:99)
android.os.Looper.loop(Looper.java:164)
android.app.ActivityThread.main(ActivityThread.java:7000)
java.lang.reflect.Method.invoke(Native Method)
com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:441)
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1408)
这段代码适用于我的平板电脑,它是我上面提到的实现方法。
nfc.available().then(
function(avail) {
console.log(avail ? "Yes" : "No");
}
我在控制台中收到消息 "YES"。
[19-08-02 15:27:52.337] (CLI) (node:18276) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'hash' of null
at PreviewAppController.<anonymous> (C:\Users\XXXXXXXXXXXXX\AppData\Roaming\npm\node_modules\nativescript\lib\controllers\preview-app-controller.js:130:64)
at Generator.next (<anonymous>)
at fulfilled (C:\Users\XXXXXXXXXXXXX\AppData\Roaming\npm\node_modules\nativescript\lib\controllers\preview-app-controller.js:10:58)
at processTicksAndRejections (internal/process/next_tick.js:81:5)
at emitWarning (internal/process/promises.js:99:15)
at processPromiseRejections (internal/process/promises.js:140:9)
at processTicksAndRejections (internal/process/next_tick.js:82:32)
[19-08-02 15:27:52.340] (CLI) (node:18276) TypeError: Cannot read property 'hash' of null
at PreviewAppController.<anonymous> (C:\Users\XXXXXXXXXXXXX\AppData\Roaming\npm\node_modules\nativescript\lib\controllers\preview-app-controller.js:130:64)
at Generator.next (<anonymous>)
at fulfilled (C:\Users\XXXXXXXXXXXXX\AppData\Roaming\npm\node_modules\nativescript\lib\controllers\preview-app-controller.js:10:58)
at processTicksAndRejections (internal/process/next_tick.js:81:5)
(node:18276) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
at emitDeprecationWarning (internal/process/promises.js:113:13)
at emitWarning (internal/process/promises.js:106:3)
at processPromiseRejections (internal/process/promises.js:140:9)
at processTicksAndRejections (internal/process/next_tick.js:82:32)
[19-08-02 15:32:26.783] (CLI) (node:18276) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'hash' of null
at PreviewAppController.<anonymous> (C:\Users\XXXXXXXXXXXXX\AppData\Roaming\npm\node_modules\nativescript\lib\controllers\preview-app-controller.js:130:64)
at Generator.next (<anonymous>)
at fulfilled (C:\Users\XXXXXXXXXXXXX\AppData\Roaming\npm\node_modules\nativescript\lib\controllers\preview-app-controller.js:10:58)
at processTicksAndRejections (internal/process/next_tick.js:81:5)
at emitWarning (internal/process/promises.js:99:15)
at processPromiseRejections (internal/process/promises.js:140:9)
at processTicksAndRejections (internal/process/next_tick.js:82:32)
如果我在 30 天前更新了那个插件,它怎么会被弃用/太旧了?
请像往常一样在 Github 存储库中报告问题,并附上显示该问题的项目,以便我可以重现它。
跟进:https://github.com/EddyVerbruggen/nativescript-nfc/issues/44
我将开始使用 NativeScript Vue 为 Android 平板电脑编写移动应用程序。我想测试 NFC 插件,但它似乎太旧了。
这是插件的存储库:
https://github.com/EddyVerbruggen/nativescript-nfc
我在我的应用程序中实施了一种方法来检查插件是否有效。但是在 NativeScript Sidekick 的后台我得到了一些错误。
LOG from device Galaxy Tab Active2: '\'NativeScript-Vue has "Vue.config.silent" set to true, to see output logs set it to false.\'' LOG from device Galaxy Tab Active2: '\'Yes\'' LOG from device Galaxy Tab Active2: An uncaught Exception occurred on "main" thread. Calling js method run failed Error: java.lang.SecurityException: NFC permission required: Neither user 10155 nor current process has android.permission.NFC. android.os.Parcel.readException(Parcel.java:2029) android.os.Parcel.readException(Parcel.java:1975) android.nfc.INfcAdapter$Stub$Proxy.setForegroundDispatch(INfcAdapter.java:1012) android.nfc.NfcAdapter.enableForegroundDispatch(NfcAdapter.java:1648) com.tns.Runtime.callJSMethodNative(Native Method) com.tns.Runtime.dispatchCallJSMethodNative(Runtime.java:1242) com.tns.Runtime.callJSMethodImpl(Runtime.java:1122) com.tns.Runtime.callJSMethod(Runtime.java:1109) com.tns.Runtime.callJSMethod(Runtime.java:1089) com.tns.Runtime.callJSMethod(Runtime.java:1081) com.tns.gen.java.lang.Runnable.run(Runnable.java:17) android.os.Handler.handleCallback(Handler.java:790) android.os.Handler.dispatchMessage(Handler.java:99) android.os.Looper.loop(Looper.java:164) android.app.ActivityThread.main(ActivityThread.java:7000) java.lang.reflect.Method.invoke(Native Method) com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:441) com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1408)
StackTrace: Frame: function:'', file:'file:///data/data/org.nativescript.preview/files/app/vendor.js', line: 672, column: 31 Frame: function:'invoke', file:'file:///data/data/org.nativescript.preview/files/app/tns_modules/tns-core-modules/timer/timer.js', line: 19, column: 45 Frame: function:'run', file:'file:///data/data/org.nativescript.preview/files/app/tns_modules/tns-core-modules/timer/timer.js', line: 23, column: 7 at com.tns.Runtime.callJSMethodNative(Native Method) at com.tns.Runtime.dispatchCallJSMethodNative(Runtime.java:1242) at com.tns.Runtime.callJSMethodImpl(Runtime.java:1122) at com.tns.Runtime.callJSMethod(Runtime.java:1109) at com.tns.Runtime.callJSMethod(Runtime.java:1089) at com.tns.Runtime.callJSMethod(Runtime.java:1081) at com.tns.gen.java.lang.Runnable.run(Runnable.java:17) at android.os.Handler.handleCallback(Handler.java:790) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:164) at android.app.ActivityThread.main(ActivityThread.java:7000) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:441) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1408) Caused by: java.lang.SecurityException: NFC permission required: Neither user 10155 nor current process has android.permission.NFC. at android.os.Parcel.readException(Parcel.java:2029) at android.os.Parcel.readException(Parcel.java:1975) at android.nfc.INfcAdapter$Stub$Proxy.setForegroundDispatch(INfcAdapter.java:1012) at android.nfc.NfcAdapter.enableForegroundDispatch(NfcAdapter.java:1648) ... 14 more LOG from device Galaxy Tab Active2: '\'NativeScript-Vue has "Vue.config.silent" set to true, to see output logs set it to false.\'' LOG from device Galaxy Tab Active2: '\'OnTagDiscovered listener added\'' LOG from device Galaxy Tab Active2: An uncaught Exception occurred on "main" thread. Calling js method run failed Error: java.lang.SecurityException: NFC permission required: Neither user 10155 nor current process has android.permission.NFC. android.os.Parcel.readException(Parcel.java:2029) android.os.Parcel.readException(Parcel.java:1975) android.nfc.INfcAdapter$Stub$Proxy.setForegroundDispatch(INfcAdapter.java:1012) android.nfc.NfcAdapter.enableForegroundDispatch(NfcAdapter.java:1648) com.tns.Runtime.callJSMethodNative(Native Method) com.tns.Runtime.dispatchCallJSMethodNative(Runtime.java:1242) com.tns.Runtime.callJSMethodImpl(Runtime.java:1122) com.tns.Runtime.callJSMethod(Runtime.java:1109) com.tns.Runtime.callJSMethod(Runtime.java:1089) com.tns.Runtime.callJSMethod(Runtime.java:1081) com.tns.gen.java.lang.Runnable.run(Runnable.java:17) android.os.Handler.handleCallback(Handler.java:790) android.os.Handler.dispatchMessage(Handler.java:99) android.os.Looper.loop(Looper.java:164) android.app.ActivityThread.main(ActivityThread.java:7000) java.lang.reflect.Method.invoke(Native Method) com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:441) com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1408)
这段代码适用于我的平板电脑,它是我上面提到的实现方法。
nfc.available().then(
function(avail) {
console.log(avail ? "Yes" : "No");
}
我在控制台中收到消息 "YES"。
[19-08-02 15:27:52.337] (CLI) (node:18276) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'hash' of null
at PreviewAppController.<anonymous> (C:\Users\XXXXXXXXXXXXX\AppData\Roaming\npm\node_modules\nativescript\lib\controllers\preview-app-controller.js:130:64)
at Generator.next (<anonymous>)
at fulfilled (C:\Users\XXXXXXXXXXXXX\AppData\Roaming\npm\node_modules\nativescript\lib\controllers\preview-app-controller.js:10:58)
at processTicksAndRejections (internal/process/next_tick.js:81:5)
at emitWarning (internal/process/promises.js:99:15)
at processPromiseRejections (internal/process/promises.js:140:9)
at processTicksAndRejections (internal/process/next_tick.js:82:32)
[19-08-02 15:27:52.340] (CLI) (node:18276) TypeError: Cannot read property 'hash' of null
at PreviewAppController.<anonymous> (C:\Users\XXXXXXXXXXXXX\AppData\Roaming\npm\node_modules\nativescript\lib\controllers\preview-app-controller.js:130:64)
at Generator.next (<anonymous>)
at fulfilled (C:\Users\XXXXXXXXXXXXX\AppData\Roaming\npm\node_modules\nativescript\lib\controllers\preview-app-controller.js:10:58)
at processTicksAndRejections (internal/process/next_tick.js:81:5)
(node:18276) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
at emitDeprecationWarning (internal/process/promises.js:113:13)
at emitWarning (internal/process/promises.js:106:3)
at processPromiseRejections (internal/process/promises.js:140:9)
at processTicksAndRejections (internal/process/next_tick.js:82:32)
[19-08-02 15:32:26.783] (CLI) (node:18276) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'hash' of null
at PreviewAppController.<anonymous> (C:\Users\XXXXXXXXXXXXX\AppData\Roaming\npm\node_modules\nativescript\lib\controllers\preview-app-controller.js:130:64)
at Generator.next (<anonymous>)
at fulfilled (C:\Users\XXXXXXXXXXXXX\AppData\Roaming\npm\node_modules\nativescript\lib\controllers\preview-app-controller.js:10:58)
at processTicksAndRejections (internal/process/next_tick.js:81:5)
at emitWarning (internal/process/promises.js:99:15)
at processPromiseRejections (internal/process/promises.js:140:9)
at processTicksAndRejections (internal/process/next_tick.js:82:32)
如果我在 30 天前更新了那个插件,它怎么会被弃用/太旧了?
请像往常一样在 Github 存储库中报告问题,并附上显示该问题的项目,以便我可以重现它。
跟进:https://github.com/EddyVerbruggen/nativescript-nfc/issues/44