Witam,
Mam kod w Javie obliczający dowolne wyrażenie matematyczne, np 2+2*2. Kod jest następujący:
import java.io.IOException;
import java.util.Scanner;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;
public class JavaApplication1 {
public static void main(String[] args) throws ScriptException, IOException
{
Scanner sc = new Scanner(System.in);
String result = (sc.next());
ScriptEngineManager factory = new ScriptEngineManager();
ScriptEngine engine = factory.getEngineByName("JavaScript");
Object obj = engine.eval(result);
System.out.println(obj );
}
}
Chciałbym to zaimplementować na androida. Znalazłem jak zaimplementować javax.script do androida, natomiast po przepisaniu do androida w ten sposób:
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
import javax.script.*;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
TextView t1 = (TextView) findViewById(R.id.t1);
String str = "2+2";
ScriptEngineManager factory = new ScriptEngineManager();
ScriptEngine engine = factory.getEngineByName("JavaScript");
Object obj = engine.eval(str);
}
}
Mam błąd "Surround with try/catch" przy linii " Object obj = engine.eval(str);". Po wprowadzeniu danej sugestii jak się można domyśleć, apka się wysypuje. Wie ktoś jak to zaimplementować ?
Pozdrówka