2017-06-24 36 views
0

我看起來像這樣的plugin.xml文件:如何在科爾多瓦插件不止一個Java文件

<?xml version="1.0" encoding="UTF-8"?> 
<plugin id="pl.jcubic.leash.service" version="1.0.0" 
     xmlns="http://apache.org/cordova/ns/plugins/1.0"> 
    <name>Exec</name> 
    <description>Apache Cordova Leash shell service plugin</description> 
    <license>Apache 2.0</license> 
    <keywords>cordova,exec,runtime,process,shell,command</keywords> 
    <js-module name="service" src="www/service.js"> 
    <clobbers target="service"/> 
    </js-module> 
    <platform name="android"> 
    <config-file parent="/*" target="res/xml/config.xml"> 
     <feature name="Service"> 
     <param name="android-package" value="pl.jcubic.leash.Service" /> 
     <param name="onload" value="true" /> 
     </feature> 
    </config-file> 
    <source-file src="src/pl/jcubic/leash/Service.java" 
       target-dir="src/pl/jcubic/leash/Service" /> 
    </platform> 
</plugin> 

我的插件是Service.java文件,但現在我想創建超類,並把一些邏輯存在,所以我Service.java文件看起來像這樣:

package pl.jcubic.leash; 

public class Service extends ReflectService { 

    public void initialize(CordovaInterface cordova, CordovaWebView webView) { 
     super.initialize(cordova, webView); 
     // your init code here 
    } 

    public String echo(String input) { 
     if (input.equals("ping")) { 
      return "pong"; 
     } else { 
      return null; 
     } 
    } 

} 

和ReflectService.java是這樣的:

package pl.jcubic.leash; 

public class ReflectService extends CordovaPlugin { 
    @Override 
    public void initialize(CordovaInterface cordova, CordovaWebView webView) { 
     super.initialize(cordova, webView); 
    } 
    ... 
} 

但是當我添加插件和運行科爾多瓦運行Android我有這個錯誤:

/home/kuba/projects/jcubic/leash/leash/platforms/android/src/pl/jcubic/leash/Service/Service.java:22: error: cannot find symbol              
public class Service extends ReflectService { 
          ^
    symbol: class ReflectService 
/home/kuba/projects/jcubic/leash/leash/platforms/android/src/pl/jcubic/leash/Service/Service.java:25: error: cannot find symbol              
     super.initialize(cordova, webView); 
     ^
    symbol: variable super 
    location: class Service 
2 errors 

如何導入類從同一個包中的Android /科爾多瓦插件?當我安裝插件時,ReflectService.java文件就在那裏。我是否需要將更多的源文件放入xml文件中?我怎樣才能做到這一點?

回答

0

所有我需要做的就是把另一個源文件轉換成XML文件:

<source-file src="src/pl/jcubic/leash/Service.java" 
      target-dir="src/pl/jcubic/leash/Service" /> 
<source-file src="src/pl/jcubic/leash/ReflectService.java" 
      target-dir="src/pl/jcubic/leash/Service" />