我正在開發一個使用VS2015的JS/Cordova應用程序。 我使用Android Studio開發了一個本地代碼庫(libmyjni.so)。 我想爲Android創建一個Cordova插件,它將使用我的.so庫。如何使用VS2015添加cordova插件.so文件?
我假設我需要添加此.so文件到我的插件代碼(或這是包裝一些其他的方式?)
我的問題是,在那裏我會將此機庫(的.so)下插件文件夾,所以插件代碼(.java)文件可以調用它的方法?除此之外還需要其他設置嗎?
眼下,文件夾/文件結構看起來像
plugins
--example.plugin.calculator
----src
------android
--------Calculator.java //this is using the method in the .so library
----www
------calculator.js
----plugin.xml
此外,在我的插件類我將如何加載.so庫 - 在pluginInitialize方法或靜態方法 ?
目前我的插件類看起來是這樣的:
package example.plugin.calculator;
import org.apache.cordova.CallbackContext;
import org.apache.cordova.CordovaPlugin;
import org.apache.cordova.CordovaWebView;
import org.apache.cordova.PluginResult;
import org.json.JSONObject;
import org.json.JSONArray;
import org.json.JSONException;
public class Calculator extends CordovaPlugin {
protected void pluginInitialize() {
System.loadLibrary("myjni"); //contains the "average" method
}
public static final String ACTION_AVERAGE = "average";
@Override
public boolean execute(String action, JSONArray args,
CallbackContext callbackContext)
throws JSONException {
if (ACTION_AVERAGE.equals(action)) {
JSONObject arg_object = args.getJSONObject(0);
String n1 = arg_object.getString("n1");
String n2 = arg_object.getString("n2");
double answer = average(n1, n2);
String result = String.valueOf(answer);
callbackContext.success(result);
return true;
}
callbackContext.error("Invalid action");
return false;
}
public native double average(int n1, int n2);
static {
System.loadLibrary("myjni"); //contains the "average" method
}
}
任何幫助非常讚賞, _Thanks
你解決了這個問題嗎?我面臨同樣的問題。的System.loadLibrary( 「myjni」);不行。請幫幫我 – dalvir