Artem
22 уровень

Groovy и Android

Статья из группы Архив info.javarush
участников
Всем привет! Возможно кто-то поможет решить проблему. Есть класс, который по заданным координатам возвращает место(название заведения, и т.д.). Он написан на Groovy. Есть приложение на android, которое получает координаты с GPS датчика и выводит какой-то текст на экран. Groovy официально не поддерживается в андроид(да, загуглил одну фитчу, как можно писать на Groovy под android, но руки еще у меня кривые ))) Вообще если запускать через main.groovy, то в консоль выводи все ок, после того как пытается вывести на экран андроида приложение (apk) - ошибка, приложение будет закрыто. Так вот, вопрос, можно ли вызвать как-то класс Groovy, что бы он вернул значение в java и всё это внутри java app на android sdk?
Комментарии (7)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Artem
Уровень 22
5 сентября 2014, 14:21
Немного сложнее оказалось, чем в java в консоли.
Кому интересно — гуглить AsyncTask
Artem
Уровень 22
5 сентября 2014, 15:02
Проблему удалось решить запуском нити, паралельно методу main…
Artem
Уровень 22
5 сентября 2014, 13:24
Уже переписал XML парсер на java… Всё равно не принимает…
Видимо в андроиде есть стадартный метод для http запросов… надо гуглить…
Process: com.example.artem.myapplication, PID: 1116
    android.os.NetworkOnMainThreadException
            at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1145)
            at java.net.InetAddress.lookupHostByName(InetAddress.java:385)
            at java.net.InetAddress.getAllByNameImpl(InetAddress.java:236)
            at java.net.InetAddress.getAllByName(InetAddress.java:214)
            at com.android.okhttp.internal.Dns$1.getAllByName(Dns.java:28)
            at com.android.okhttp.internal.http.RouteSelector.resetNextInetSocketAddress(RouteSelector.java:216)
            at com.android.okhttp.internal.http.RouteSelector.next(RouteSelector.java:122)
            at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:292)
            at com.android.okhttp.internal.http.HttpEngine.sendSocketRequest(HttpEngine.java:255)
            at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:206)
            at com.android.okhttp.internal.http.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:345)
            at com.android.okhttp.internal.http.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:296)
            at com.android.okhttp.internal.http.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:179)
            at com.android.okhttp.internal.http.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:246)
tanzwud
Уровень 34
5 сентября 2014, 00:24
Groovy 2.4 должен работать на Андроид по идее. Хотя тут все зависит от анрдойда и версии JVM видимо.
Artem
Уровень 22
5 сентября 2014, 01:09
В том и дело, что он работает… Проблема именно с XmlParser…
Вытянул исходник из groovy-xml и создал как классы java их…
В итоге java.io.IOException: Couldn't open maps.googleapis.com/maps/api/place/nearbysearch/xml?location=48.4......
Я не понимаю, почему через main работает отлично, а с андроида краш…
silh
Уровень 0
5 сентября 2014, 07:42
Может какие-то особенности Dalvik'a.
Artem
Уровень 22
4 сентября 2014, 23:45
Вообщем проблема в Groovy XML parser почему-то… При запуске с main он работает, при запуске на андроиде валится…