2014-08-29 41 views
0

我試圖在自行構建的插件中運行Cordova中的Android項目, 下面是JS和java代碼中的代碼Cordova使用自建插件構建android項目時無法找到符號錯誤(調用本機java代碼)

var cordova = require('cordova'); 

var Carrier = function() {}; 

Carrier.prototype.getCarrierCode = function(success, error) { 
    cordova.exec(success, error, 'CarrierPlugin', 'getCarrierCode', []); 
}; 

var carrier = new Carrier(); 
module.exports = carrier; 

這是Java代碼:

import org.apache.cordova.CordovaPlugin; 
import org.apache.cordova.CallbackContext; 
import org.json.JSONArray; 
import org.json.JSONException; 
import org.json.JSONObject; 
import java.util.Date; 
import android.app.Activity; 
import android.database.Cursor; 
import android.os.Bundle; 
import android.provider.CallLog; 
import android.content.ContentResolver; 
public class CarrierPlugin extends CordovaPlugin{ 
     public static final String TAG = "CarrierPlugin"; 
     public static final String ACTION_GET_CARRIER_CODE = "getCarrierCode"; 
     //public TelephonyManager tm; 
    @Override 
    public void initialize(CordovaInterface cordova, CordovaWebView webView) { 
     // TODO Auto-generated method stub 
     super.initialize(cordova, webView); 

    } 

    @Override 
    public boolean execute(String action, CordovaArgs args, 
     CallbackContext callbackContext) throws JSONException{ 
     callbackContext.success("run it"); 
     return true; 
    } 

} 

我得到的錯誤是 「找不到符號:」 enter image description here

奇怪的是,即使我更改了CarrierPlugin.java中的代碼(刪除第16行中的JSONException),它也報告了相同的錯誤。

回答

0

我的Eclipse說,你應該導入CordovaInterface,CordovaWebView和CordovaArgs。

而且您可能會丟失包聲明,具體取決於您要將插件的Java文件放在哪裏,例如: package com.yourdomain.etc位於Java文件的第一行。

+0

它不工作,並且錯誤是相同的。我想知道如果我正確運行該項目,我更改了CarrierPlugin.java中的代碼,然後使用命令「cordova run android」運行它。 – Qing 2014-08-29 07:36:46

+0

,即使我改變了Java文件中的代碼。例如,我刪除JSONException,仍然有錯誤聲明無法找到第16行中的符號「JSONException」, – Qing 2014-08-29 07:37:45

+0

我不擅長命令行,我使用eclipse,但你似乎有命​​令行的問題,別忘了首先要「科爾多瓦建設」。只需在這裏和那裏添加一些隨機字符,以確保您的修改是完全構建的。 – mentat 2014-08-29 07:38:48

相關問題