Nativescript 6.0 Android 应用小部件不工作

Posted

技术标签:

【中文标题】Nativescript 6.0 Android 应用小部件不工作【英文标题】:Nativescript 6.0 Android App Widget not working 【发布时间】:2020-06-23 20:00:28 【问题描述】:

我正在尝试使用带有 NativeScript 6.0 Core 的应用小部件。 我使用了 Nativescript 提供的示例代码: sample-android-Widgets

它可以编译并且运行良好,但是当我尝试将小部件放在屏幕上时,我收到以下错误:

System.err: An uncaught Exception occurred on "main" thread.
System.err: Unable to instantiate receiver com.tns.MyWidget: com.tns.NativeScriptException: Failed to create javascript extend wrapper for class 'com/tns/MyWidget'
System.err: 
System.err: StackTrace:
System.err: java.lang.RuntimeException: Unable to instantiate receiver com.tns.MyWidget: com.tns.NativeScriptException: Failed to create JavaScript extend wrapper for class 'com/tns/MyWidget'
System.err:     at android.app.ActivityThread.handleReceiver(ActivityThread.java:3365)
System.err:     at android.app.ActivityThread.access$1200(ActivityThread.java:199)
System.err:     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1661)
System.err:     at android.os.Handler.dispatchMessage(Handler.java:106)
System.err:     at android.os.Looper.loop(Looper.java:193)
System.err:     at android.app.ActivityThread.main(ActivityThread.java:6669)
System.err:     at java.lang.reflect.Method.invoke(Native Method)
System.err:     at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
System.err:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
System.err: Caused by: com.tns.NativeScriptException: Failed to create JavaScript extend wrapper for class 'com/tns/MyWidget'
System.err:     at com.tns.Runtime.createJSInstanceNative(Native Method)
System.err:     at com.tns.Runtime.createJSInstance(Runtime.java:778)
System.err:     at com.tns.Runtime.initInstance(Runtime.java:751)
System.err:     at com.tns.MyWidget.<init>(MyWidget.java:13)
System.err:     at java.lang.Class.newInstance(Native Method)
System.err:     at android.app.AppComponentFactory.instantiateReceiver(AppComponentFactory.java:84)
System.err:     at androidx.core.app.CoreComponentFactory.instantiateReceiver(CoreComponentFactory.java:56)
System.err:     at android.app.ActivityThread.handleReceiver(ActivityThread.java:3358)
System.err:     ... 8 more

自从我将 NativeScript 更新到新的 6.0 版本后,我遇到了麻烦。

任何帮助将不胜感激,谢谢!

【问题讨论】:

可能是您的小部件的原生类没有正确编译,您是否在 webpack 配置中包含该类? 感谢您的回复。不,我没有包含,你能告诉我如何在 webpack 配置中添加吗? 你检查过 webpack 配置文件吗?如果您阅读文件中的 cmets,它会显示您必须将自定义活动、服务等添加到 appComponents 数组。 【参考方案1】:

谢谢马诺杰! 我想通了!我在 webpack 配置中接近答案,但不知道在 appComponents 中插入什么样的路径。

这个文档对我很有帮助 Extend Application Activity

这是我在webpack.config编辑的内容

const appComponents = [
        ...
        resolve(__dirname, "app/<MyFile>.js"),
    ];

再次感谢您!

【讨论】:

以上是关于Nativescript 6.0 Android 应用小部件不工作的主要内容,如果未能解决你的问题,请参考以下文章

android中状态栏下的nativescript操作栏

Nativescript - 在 Android 中隐藏状态栏

Nativescript 接受 Android SDK 许可

错误:android.view.InflateException 使用 nativescript 插件反馈

NativeScript:多个库,包名称为“com.google.android.gms.license”

如何停止将焦点移到 Nativescript (Android) 中的 Enter 按键上?