- 
				Sziasztok!
 
 Alapra Android Studioban nincs is ScriptEngine csak külön lib-ként tudtam berakni, de amikor használnám kifagy az app és a hibaüzenet:
 
 
 java.lang.NullPointerException: Attempt to invoke interface method \'java.lang.Object javax.script.ScriptEngine.eval(java.lang.String)\' on a null object reference
 
 
 Egy ideje már baszakszok vele, aki tudja hogy tudnám javítani elmondhatná.
 
 
 
 
 ScriptEngineManager mgr = new ScriptEngineManager();
 ScriptEngine engine = mgr.getEngineByName(\"JavaScript\");
 result = ((Double) engine.eval(currentaction));
 display.setText(result.toString());
 
 
 
- 
				Nem használtam még ilyeneket javában. De úgy tűnik nincs JavaScript nevű engined. Úgy olvastam a java 8 ba egy nashorn nevű javascript engine van úgyhogy azt kell getelned.
 
 http://winterbe.com/posts/2014/04/05/java8-nashorn-tutorial/
- 
				Köszi amint tudom kipróbálom.
			
- 
				A hiba ugyanaz, szerintem a stringet szétszedem valami forral aztán lesz ami lesz.
			
- 
				Most kipróbáltam én is nekem lefut gond nélkül.
 
 
 public static void main(String [] args){
 ScriptEngine engine = new ScriptEngineManager().getEngineByName(\"nashorn\");
 try {
 engine.eval(\"print(\'Hi\');\");
 } catch (ScriptException e) {
 e.printStackTrace();
 }
 }
 
 
 Milyen IDE-t használsz?
- 
				
 
 
 Most kipróbáltam én is nekem lefut gond nélkül.
 
 
 public static void main(String [] args){
 ScriptEngine engine = new ScriptEngineManager().getEngineByName(\"nashorn\");
 try {
 engine.eval(\"print(\'Hi\');\");
 } catch (ScriptException e) {
 e.printStackTrace();
 }
 }
 
 
 Milyen IDE-t használsz?
 
 
 
 
 Android Studio, de már megtaláltam egy ScriptEngine nélküli megoldást, legalább nem kell növelni az app méretét libraryval.
- 
				Mi lett a megoldás? (Tényleg ott a címben is)
			
- 
				
 if (currentaction.contains(\"+\")) {
 String[] array = currentaction.split(\"\\\\+\");
 result = Double.parseDouble(array[0])+Double.parseDouble(array[1]);
 currentaction = result.toString();
 display.setText(result.toString());
 } else if (currentaction.contains(\"-\")) {
 String[] array = currentaction.split(\"\\\\-\");
 result = Double.parseDouble(array[0])-Double.parseDouble(array[1]);
 currentaction = result.toString();
 display.setText(result.toString());
 } else if (currentaction.contains(\"*\")) {
 String[] array = currentaction.split(\"\\\\*\");
 result = Double.parseDouble(array[0])*Double.parseDouble(array[1]);
 currentaction = result.toString();
 display.setText(result.toString());
 } else if (currentaction.contains(\"/\")) {
 String[] array = currentaction.split(\"\\\\/\");
 result = Double.parseDouble(array[0])/Double.parseDouble(array[1]);
 currentaction = result.toString();
 display.setText(result.toString());
 } else {
 display.setText(currentaction);
 }
 
 
 Tudom OMFG legalább case-t használnék, de működik.
 
 
- 
				Nem teljesen vágom. Nem JavaScript akartál futtatni am?
			
- 
				Azt a próbálkozást már én se nagyon értem.