我使用plugman命令在cordova中创建插件
它创建了所需的所有必要文件。然后我在插件中添加了android平台。
然后我尝试在cordova app中添加它。我成功地添加了它,但是当我尝试构建应用程序时,它会给出以下错误
我做错了什么。如何在cordova app中添加我的自定义插件。
以下是.java文件的代码。
package cordova-plugin-test-cordova-plugin;
import org.apache.cordova.CordovaPlugin;
import org.apache.cordova.CallbackContext;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
/**
* This class echoes a string called from JavaScript.
*/
public class TestCordovaPlugin extends CordovaPlugin {
@Override
public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException {
if (action.equals("coolMethod")) {
String message = args.getString(0);
this.coolMethod(message, callbackContext);
return true;
}
return false;
}
private void coolMethod(String message, CallbackContext callbackContext) {
if (message != null && message.length() > 0) {
callbackContext.success(message);
} else {
callbackContext.error("Expected one non-empty string argument.");
}
}
}
这是我的plugin.xml文件:
<?xml version='1.0' encoding='utf-8'?>
<plugin id="cordova-plugin-test-cordova-plugin" version="0.0.1" xmlns="http://apache.org/cordova/ns/plugins/1.0" xmlns:android="http://schemas.android.com/apk/res/android">
<name>TestCordovaPlugin</name><js-module name="TestCordovaPlugin" src="www/TestCordovaPlugin.js">
<clobbers target="cordova.plugins.TestCordovaPlugin" /></js-module><platform name="android">
<config-file parent="/*" target="res/xml/config.xml"><feature name="TestCordovaPlugin">
<param name="android-package" value="cordova-plugin-test-cordova-plugin.TestCordovaPlugin" />
</feature></config-file><config-file parent="/*" target="AndroidManifest.xml"></config-file>
<source-file src="src/android/TestCordovaPlugin.java" target-dir="src/cordova-plugin-test-cordova-plugin/TestCordovaPlugin" />
</platform>
</plugin>
答案 0 :(得分:4)
我认为你的引用中缺少java代码。要创建自定义Cordova插件,请查看here。
请查看您在java文件中的包名称约定,请查看here。
这里是创建插件并在离子应用程序中安装的步骤。
要检查来源和样本here。
<强>命令:强>
(在App Dir中)离子插件添加[您的本地测试插件路径]
示例: 离子插件添加/用户/工作区/测试/ CordovaPluginSampleTest /测试
离子平台添加android或ios
以下列方式更新plugin.xml文件
<?xml version='1.0' encoding='utf-8'?>
<plugin id="cordova.plugin.test.cordova.plugin" version="0.0.1" xmlns="http://apache.org/cordova/ns/plugins/1.0" xmlns:android="http://schemas.android.com/apk/res/android">
<name>TestCordovaPlugin</name>
<js-module name="TestCordovaPlugin" src="www/TestCordovaPlugin.js">
<clobbers target="cordova.plugins.TestCordovaPlugin" />
</js-module>
<platform name="android">
<config-file parent="/*" target="res/xml/config.xml">
<feature name="TestCordovaPlugin">
<param name="android-package" value="cordova.plugin.test.cordova.plugin.TestCordovaPlugin" />
</feature>
</config-file>
<config-file parent="/*" target="AndroidManifest.xml"></config-file>
<source-file src="src/android/TestCordovaPlugin.java" target-dir="src/cordova/plugin/test/cordova/plugin/TestCordovaPlugin" />
</platform>
</plugin>
希望这会对你有帮助!!!
答案 1 :(得分:2)
从第一行错误消息中,我认为您的java源代码中存在语法错误。您在TestCordovaPlugin.java文件的第一行中错过了分号 简单来说,我认为你在导入声明后错过了分号 解决方法是,您可以先在Cordova项目中直接修改java源代码,然后将修改同步到独立插件。
答案 2 :(得分:0)
你可以做一件事。你可以用plugman再次创建这个插件,但是使用不同的命令,即
plugman create --name AmILate --plugin_id cordovapluginamilate --plugin_version 0.0.1
然后再次执行相同的步骤。
我已经正确使用了它并且它有效 但是当我使用javascript和java类在cordovapluginamilate中创建另一个名为myMethod的函数时出现错误为custom plugin error
我在github上分享了我的插件代码https://github.com/vishuhanda001/cordovaaddcustomplugin
我已经评论了coolMethod,而是尝试在javascript和java文件中使用myMethod,但是在访问它时遇到了上述错误,但是如果我取消注释coolMethod我的插件为coolmethod函数只有work.dont知道发生了什么 请帮忙 ?