2016-05-04 3 views
2

Я начинаю в java, я делал простой калькулятор в Android Studio, используя Beanshell. Когда я запускаю проект, он отлично работает только на моем эмуляторе. Для реальных устройств это приложение может быть установлено только. Когда я пытаюсь запустить, приложение происшествиям показывает "Unfortunately 'X' app has been stoppedСообщение об ошибке BeanShell в студии android

Мой код слишком прост:.

Interpreter interpreter = new Interpreter(); 
String equation = "2+3*9"; // I gave user to input his own via editText, 
          // Lets think for a simple case 
Object answer1 = interpreter.eval(equation); 
String answer = answer1.toString(); 

Вход:

EVENT LOG: http://pastebin.com/JwcuV0ch

Gradle BUILD СООБЩЕНИЕ: http://pastebin.com/8cDXp0N5

1) Не могли бы вы объяснить, почему возникает эта ошибка?

2) Из построения сообщения, я вставив несколько строк:

Error:(bsh.Interpreter$1) that doesn't come with an 
Error:associated EnclosingMethod attribute. This class was probably produced by a 
Error:compiler that did not target the modern .class file format. The recommended 
Error:solution is to recompile the class from source, using an up-to-date compiler 

я получил линию compiler that did not target the mordern .class file format раз в моих сборках сообщения. Поэтому, пожалуйста, дайте мне знать, как я могу перекомпилировать BeanShell?

[P.S. : В Netbeans Я написал тот же код, чтобы значение evalute из строки.

import bsh.Interpreter; 
public class Main 
{ 
    public static void main(String[] args) 
    { 
      Interpreter interpreter = new Interpreter(); 
      String equation = "2+3*9"; // I gave user to input his own via editText in android, 
          // Lets think for a simple case 
       String answer = interpreter.eval(equation); 
       System.out.println(answer); 
    } 
} 

Все было хорошо там, сейчас это для меня странно, почему же код создают проблемы в Android Studio]

ответ

1

Interpreter.eval() возвращает объект , а не строки. Таким образом, вы, скорее всего, столкнулись с проблемой при литье из Integer к Строка:

Целевое исключение: java.lang.ClassCastException: не может бросить java.lang.Integer к java.lang.String

Попытки бросить возвращаемое значение целого числа в строку и она должна работать:

String answer = String.valueOf(interpreter.eval(equation)); 
+0

моей ошибки, вопрос отредактирован (я тоже это сделал) – 000