360fans_uiunyA 发表于 2018-6-25 13:53

使用了rhino作为js引擎运行js代码,加固后会报空指针,有解决方案吗?

测试机是小米5s MIUI 9.5。
我在代码中使用了rhino作为js引擎
private void setEcmaScriptEngine() {
    engine = new ScriptEngineManager().getEngineByName(\"rhino\");
    }这是初始化引擎的代码,之后会在一个方法中调用engine中的eval函数
private String complie(String value, int key) {
try {
engine.eval(new InputStreamReader(getResources().openRawResource(R.raw.encrypt)));
String evalStr = \"compile(\\\\\\\"\" + value + \"\\\\\\\", \" + key + \")\";
String s = (String) engine.eval(\"eval(\\\"\"+evalStr+\"\\\")\");
Log.d(TAG, \"compile key=\" + s);
return s;
} catch (Exception e) {
Log.e(TAG, \"出现错误\", e);
throw new RuntimeException(e);
}
    }在调用engine.eval的时候会报空指针。我用logcat抓取出错信息之后的报错如下:


未加固时,不会报错,所以应该是加固后出现的错误,有什么解决方法吗?

360fans_uid19400513 发表于 2018-7-6 14:51

您好~请添加工作人员的QQ1339088460,帮您看下具体情况
页: [1]
查看完整版本: 使用了rhino作为js引擎运行js代码,加固后会报空指针,有解决方案吗?