nativescript - 自定义扩展活动不适用于 Nativescript 7
问题描述
几个月前,相同的代码运行良好,我能够启动自定义活动(和自定义应用程序),但我不知道发生了什么。我尝试了新项目来重现步骤,但我总是遇到同样的错误:
无法创建应用程序 com.tns.NativeScriptApplication:com.tns.NativeScriptException:调用模块函数 System.err 时出错:错误:com.tns.system.classes.loading.LookedUpClassNotFound:找不到类“abNativeScriptActivity”。System.err: 文件: (/data/data/org.nativescript.testing/files/internal/ts_helpers.js:154:25) System.err: System.err: StackTrace: System.err: (/data/data/ org.nativescript.testing/files/internal/ts_helpers.js:154:26) System.err: 在 __decorate(/data/data/org.nativescript.testing/files/internal/ts_helpers.js:13:19) 系统。错误:在./app/core/android/activity.ts(文件:src/app/core/android/activity.android.ts:5:25)...
Activity ts 文件是activity.android.ts。我穿上了 JavaProxy 装饰器“abNativeScriptActivity”。在 Android Maifest 上也是如此。还在 webpack.config.js 上的 AppComponents 数组上添加了条目
更新:我很久以前就放弃了 Nativescript(转向 Flutter)。
解决方案
因为Nativescript 7
您必须添加以下装饰器:
@NativeClass()
例子:
@NativeClass()
@JavaProxy("com.lanmis.app.BackgroundJobService")
class BackgroundService extends android.app.job.JobService {
}
在nativescript 6
:
第一个解决方案:
如果 tsconfig.jsonimportHelpers: true
中存在,则必须将其更改为:
importHelpers: false
第二种解决方案:
而不是以下块:
@JavaProxy("com.lanmis.app.BackgroundJobService")
class BackgroundService extends android.app.job.JobService {
//Code
}
利用 :
android.app.job.JobService.extend("com.lanmis.app.BackgroundJobService", {
//Code
})
推荐阅读
- javascript - 将 jQuery 重构为 vanila JS 以进行自定义选择
- python - 使用python将txt数据(来自日志文件)转换为json?
- hibernate - 持久化多个对象休眠:非空属性引用瞬态值
- mysql - 如何为 mysql docker 容器定义自定义配置?
- python - 根据其他列的条件创建新列
- python - 过滤具有矩阵行和列的字典
- python - 有什么办法可以通过多处理优化这个数字搜索吗?
- ios - 如何使用按钮操作 iOS Swift 获取 CollectionView 项目的项目值
- sql-server - SQL递归从PSP获取BOM
- python - Stylegan2-ada tfrecords - ValueError:轴与数组不匹配,图像将运行一次而下一次无法运行