Использование ScriptEngine.eval () на Android делает приложение остановленным - PullRequest
2 голосов
/ 20 марта 2019

Я хотел сделать калькулятор легко. Поэтому я решил использовать носорога.

Я добавил эту строку в приложение Gradle.

реализация 'io.apisense: rhino-android: 1.0'

и вот мой метод нажатия кнопки

public void onButtonOkOnClicked(View view) throws ScriptException {
    ScriptEngineManager mgr = new ScriptEngineManager();
    ScriptEngine engine = mgr.getEngineByName("JavaScript");
    TextView tv = (TextView) findViewById(R.id.tv_number);

    tv.setText(engine.eval(tv.getText().toString()).toString());
}

но мое приложение останавливается, когда я нажимаю кнопку.

Как я могу использовать метод eval?

Причина: java.lang.reflect.InvocationTargetException

Причина: java.lang.NullPointerException: попытка вызвать метод интерфейса 'java.lang.Object javax.script.ScriptEngine.eval (java.lang.String)' для ссылки на пустой объект

Я нашел другое решение. LINK

...