2012-11-06 70 views
1

我正在開發一個cordova/phonegap android插件來列出設備周圍的wifi。android JNI ERROR

在我的插件類中,我想使用WifiManager來完成這項工作。 我在這裏的執行方法:

public boolean execute(String action, JSONArray args, CallbackContext callbackContext) throws JSONException { 
    Log.d ("WifiLister", "action : " + action); 
    if ("WifiList".equals(action)) { 
     wifiList(callbackContext);   
     return true; 
    } 
    return false; // Returning false results in a "MethodNotFound" error. 
} 

這裏我wifiList方法:

private void wifiList(CallbackContext callbackContext) throws JSONException{   
    WifiManager wifiManager = (WifiManager) cordova.getContext().getSystemService(Context.WIFI_SERVICE);   
    if (!wifiManager.isWifiEnabled()) {  
     callbackContext.error("Wifi disabled, please turn on Wifi and try again"); 
    } 
    else{ 
      // do something 
    } 

在isWifiEnabled方法調用,我得到了以下錯誤:

JNI ERROR (app bug): attempt to use stale local reference 0x1 
VM aborting 
fatal signal 11 (SISEGC) at 0Xdeadd00d (code=1) 

我讀發現了同樣的錯誤與想要將原生(C/C++)代碼轉換爲android應用程序的人們,他們必須使用newGlobalRef方法。但它不是我的情況,我在純Java代碼中。

任何人都可以提供幫助嗎?

謝謝!

回答