如何解决Nativescript Vue 无法使用自定义 Java 插件
我有一个非常基本的 Java 函数,我想通过 NativeScript Vue 应用程序调用它。 .java 文件如下所示:
package com.example.toastermodule;
import android.content.Context;
import android.widget.Toast;
public class Toaster {
public void show(Context context) {
CharSequence text ="Hello NativeScript!";
int duration = Toast.LENGTH_SHORT;
Toast toast = Toast.makeText(context,text,duration);
toast.show();
}
}
这篇文章 (https://nativescript.org/blog/plugins-and-jars/) 是我获取 Java 代码的地方,并指导我将功能导出为 jar,并将其导入 NativeScript。但是,提供的 gradle 代码实际上并没有生成 jar 文件。我在网上找到了对本指南的各种参考,更新了 gradle 说明以说明构建文件存储位置的变化,但我仍然无法生成单个复合 jar 文件。
我也曾使用这篇文章 (https://docs.nativescript.org/plugins/plugin-reference) 尝试直接导入 Java 插件。我为 Java 项目创建了一个基本的 package.json 文件,如下所示:
{
"name": "nativescript-my-plugin","version": "0.0.1","nativescript": {
"platforms": {
"ios": "4.0.0","android": "4.1.0"
}
}
}
我将此文件放入主项目文件夹(例如“~/AndroidStudioProjects/Toaster/”)。当我在我的 NativeScript 项目中打开一个终端并运行 tns add plugin "~/AndroidStudioProjects/Toaster/"
时,我收到了令人鼓舞的消息:Successfully installed plugin nativescript-my-plugin.
但是,如果我从“nativescript-my-plugin”更改 package.json 文件中的名称,我会收到一条错误消息:Cannot find module 'toaster-plugin/package.json'
。我不知道为什么更改名称会给我这个错误消息,因为据我所知,名称是任意的,没有在其他任何地方引用。
此外,当我尝试实际使用插件时(我的 Home.vue 看起来像这样)
<template>
<Page>
<ActionBar>
<Label text="Home"/>
</ActionBar>
<GridLayout>
<Label class="info">
<FormattedString>
<Span class="fas" text.decode=" "/>
<Span :text="message"/>
</FormattedString>
</Label>
<Button @tap="printJava" text="Print Java"/>
</GridLayout>
</Page>
</template>
<script>
var myPlugin = require("nativescript-my-plugin");
export default {
computed: {
message() {
return "Blank {N}-Vue app";
}
},methods: {
printJava(){
myPlugin.show();
}
}
}
</script>
<style scoped lang="scss">
@import '~@nativescript/theme/scss/variables/blue';
// Custom styles
.fas {
@include colorize($color: accent);
}
.info {
font-size: 20;
horizontal-align: center;
vertical-align: center;
}
</style>
我收到此错误消息 Module not found: Error: Can't resolve 'nativescript-my-plugin' in '~\java-test-2\app\components'
,然后是
Error from chokidar (C:\): Error: EBUSY: resource busy or locked,lstat 'C:\hiberfil.sys'
File change detected. Starting incremental webpack compilation...
File change detected. Starting incremental webpack compilation...
尽管实际上并未对代码进行任何更改。
所以我的问题是,为什么 package.json
中声明的名称只有在 "nativescript-my-plugin"
时才有效?在这个过程中我做错了什么?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。