【问题标题】:Issues with deprecated NFC (RFID) Plugin with NativeScript带有 NativeScript 的已弃用 NFC (RFID) 插件的问题
【发布时间】:2019-08-02 14:25:20
【问题描述】:

我将开始在 NativeScript Vue 上为 Android 平板电脑编写移动应用程序。我想测试 NFC 插件,但它似乎太旧了。

这是插件的存储库:

https://github.com/EddyVerbruggen/nativescript-nfc

我在我的应用程序中实现了一个方法来检查插件是否有效。但是在 NativeScript Sidekick 的背景中,我遇到的错误很少。

来自设备 Galaxy Tab Active2 的日志:'\'NativeScript-Vue 有 “Vue.config.silent”设置为true,查看输出日志设置为false。\'' 来自设备 Galaxy Tab Active2 的日志:'\'Yes\'' 来自设备 Galaxy Tab Active2 的日志:发生未捕获的异常 “主”线程。 调用js方法运行失败 错误:java.lang.SecurityException:需要 NFC 权限:用户都没有 10155 当前进程也没有 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(本机方法) 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(本机方法) com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:441) com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1408)

堆栈跟踪: 框架:函数:'',文件:'file:///data/data/org.nativescript.preview/files/app/vendor.js',行:672,列:31 框架:函数:'invoke',文件:'file:///data/data/org.nativescript.preview/files/app/tns_modules/tns-core-modules/timer/timer.js',行:19,列: 45 框架:函数:'run',文件:'file:///data/data/org.nativescript.preview/files/app/tns_modules/tns-core-modules/timer/timer.js',行:23,列: 7 在 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(本机方法) 在 com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:441) 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1408) 原因:java.lang.SecurityException:需要 NFC 权限:用户 10155 和当前进程都没有 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) ... 14 更多 来自设备 Galaxy Tab Active2 的日志:'\'NativeScript-Vue 将“Vue.config.silent”设置为 true,查看输出日志将其设置为 false。\'' 来自设备 Galaxy Tab Active2 的日志:'\'OnTagDiscovered listener added\'' 来自设备 Galaxy Tab Active2 的日志:“主”线程上发生未捕获的异常。 调用js方法运行失败 错误:java.lang.SecurityException:需要 NFC 权限:用户 10155 和当前进程都没有 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(本机方法) 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(本机方法) 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");
  }

我在控制台中收到消息“是”。

[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)

【问题讨论】:

    标签: android nativescript nfc


    【解决方案1】:

    如果我在 30 天前确实更新了该插件,该插件如何被弃用/太旧?

    请像往常一样在 Github 存储库上报告问题,并附上一个显示问题的项目,以便我重现它。

    跟进:https://github.com/EddyVerbruggen/nativescript-nfc/issues/44

    【讨论】:

      猜你喜欢
      • 2020-03-20
      • 1970-01-01
      • 2020-08-01
      • 2012-10-04
      • 1970-01-01
      • 2022-08-03
      • 2016-03-29
      • 1970-01-01
      • 2019-07-24
      相关资源
      最近更新 更多