Comments 21
У меня норм (55 тыс. показов с понедельника)
+1
Это ж какой URL надо пытаться загрузить, чтобы получить IndexOutOfBoundsException в StringBuilder.append? Больше на баг стандартной библиотеки похоже…
0
Это похоже на кудрявые руки разработчиков Admob, документация Java явно описывает такое поведение append
append(CharSequence s, int start, int end);
Throws:
IndexOutOfBoundsException - if start or end are negative, or start is greater than end or end is greater than s.length()
+2
Да, но обратите внимание на то, что вызов идет из
UriCodec.appendEncoded
. Насколько я помню libcore
является частью внутренних библиотек Android.0
Но непосредственно-то со StringBuilder Admob не работает! Со StringBuilder работает что-то из libcore, что не выглядит как часть Admob.
Так или иначе, падает HTTP-клиент, причем на этапе парсинга URL. Вот я и спрашиваю, что же это за URL такой, что вместо стандартного URISyntaxException прилетает IndexOutOfBoundsException.
PS если бы это был С++ — было бы переполнение буфера со всеми вытекающими последствиями
Так или иначе, падает HTTP-клиент, причем на этапе парсинга URL. Вот я и спрашиваю, что же это за URL такой, что вместо стандартного URISyntaxException прилетает IndexOutOfBoundsException.
PS если бы это был С++ — было бы переполнение буфера со всеми вытекающими последствиями
-1
UPD:
Судя по исходному коду, такая ошибка возникает, если ссылка заканчивается неполной urlencode-последовательностью, например example.org/page?q=%3.
Так что проблема все-таки в стандартной библиотеке, поскольку согласно спецификации интерфейса, исключение должно быть выкинуто немного другое.
Другое дело, что во вспомогательных потоках, не влияющих на основную программу, надо ловить все-таки все исключения, независимо от степени их ожидаемости, тут разработчики Admob действительно прокололись.
Судя по исходному коду, такая ошибка возникает, если ссылка заканчивается неполной urlencode-последовательностью, например example.org/page?q=%3.
Так что проблема все-таки в стандартной библиотеке, поскольку согласно спецификации интерфейса, исключение должно быть выкинуто немного другое.
Другое дело, что во вспомогательных потоках, не влияющих на основную программу, надо ловить все-таки все исключения, независимо от степени их ожидаемости, тут разработчики Admob действительно прокололись.
+4
А можно увидеть пару ссылок? Например, хотелось бы почитать как именно Admob предполагает и увидеть жалобы из США.
+1
У меня в понедельник было одно письмо, вчера еще одно, а сегодня уже 15. Вот одно из них:
I am soooooooo incredibly frustrated!!! My problems all started on Monday.....I started getting kicked out of my game 250+ Solitaire Collection.....it was here and there I'd get kicked out. Then Tues it got worse, more frequent, but I could at tines play it for up to a half hour at a time, now its Wed and I can't even move 1 card b4 it kicks me out!!! I even uninstalled it and re-installed it, that didn't help at all. It'll kick me out either when it first loads or usually it waits fir me to pick my game....it doesn't matter which game I pick, once the cards load it kicks me out…
PLEASE HELP ME FIX THIS!!! This is the ONLY game I play EVERY SINGLE morning.
А по поводу ссылок забейте в гугл строчку «java.lang.IndexOutOfBoundsException
at java.lang.AbstractStringBuilder.append0(AbstractStringBuilder.java:156)»
I am soooooooo incredibly frustrated!!! My problems all started on Monday.....I started getting kicked out of my game 250+ Solitaire Collection.....it was here and there I'd get kicked out. Then Tues it got worse, more frequent, but I could at tines play it for up to a half hour at a time, now its Wed and I can't even move 1 card b4 it kicks me out!!! I even uninstalled it and re-installed it, that didn't help at all. It'll kick me out either when it first loads or usually it waits fir me to pick my game....it doesn't matter which game I pick, once the cards load it kicks me out…
PLEASE HELP ME FIX THIS!!! This is the ONLY game I play EVERY SINGLE morning.
А по поводу ссылок забейте в гугл строчку «java.lang.IndexOutOfBoundsException
at java.lang.AbstractStringBuilder.append0(AbstractStringBuilder.java:156)»
0
Чувствую народ побежить вставлять try-catch на все вызовы неосновных сторонних библиотек.
0
Разрабочики игр почти все делают… Ну по крайней мере крупные…
И еще — кроме этого, возможность включать и отключать со стороны сервера.
А то сторонние библиотеки они такие — если не падают, то могут в какой нибудь init-е блокирующем весеть долго… И не все позволяют их в отдельную нитку запихнуть… Или любят по 50 http запросов вызвать — каждый в отдельной нитке. Или резко памяти 20 мегабайт занять, хотя до этого 500кб обходились.
А вообще — это забота отдельного человека, который как раз занимается вопросом интеграции сторонних SDK в приложение.
И еще — кроме этого, возможность включать и отключать со стороны сервера.
А то сторонние библиотеки они такие — если не падают, то могут в какой нибудь init-е блокирующем весеть долго… И не все позволяют их в отдельную нитку запихнуть… Или любят по 50 http запросов вызвать — каждый в отдельной нитке. Или резко памяти 20 мегабайт занять, хотя до этого 500кб обходились.
А вообще — это забота отдельного человека, который как раз занимается вопросом интеграции сторонних SDK в приложение.
0
По стеку это внутренный поток библиотеки Admob и try-catch здесь не помогут
0
Отличная новость! Надеюсь, сгниют все приложения, авторы которых добавляют в них говно! А то куда не плюнь — везде эта гадость.
-7
Остаётся только порекомендовать людям сделать права Root и установить что-нибудь вроде AdAway :) И рекламы не будет, в том числе и этой проблемы.
0
А тем временем заканчивался 2014… 12 декабря, Android 4.2.2
Crashlytics:
Старые грабли?
Crashlytics:
java.lang.IndexOutOfBoundsException
at java.lang.AbstractStringBuilder.append0(AbstractStringBuilder.java:156)
at java.lang.StringBuilder.append(StringBuilder.java:311)
at libcore.net.UriCodec.appendEncoded(UriCodec.java:114)
at libcore.net.UriCodec.appendPartiallyEncoded(UriCodec.java:142)
at java.net.URLStreamHandler.toExternalForm(URLStreamHandler.java:281)
at java.net.URL.toURILenient(URL.java:510)
at libcore.net.http.HttpEngine.(HttpEngine.java:195)
at libcore.net.http.HttpURLConnectionImpl.newHttpEngine(HttpURLConnectionImpl.java:265)
at libcore.net.http.HttpURLConnectionImpl.initHttpEngine(HttpURLConnectionImpl.java:252)
at libcore.net.http.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:274)
at libcore.net.http.HttpURLConnectionImpl.getResponseCode(HttpURLConnectionImpl.java:495)
at com.google.android.gms.internal.cy.aB()
at com.google.android.gms.internal.ct$1.run()
at com.google.android.gms.internal.cu$1.run()
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
at java.lang.Thread.run(Thread.java:856)
Старые грабли?
0
Sign up to leave a comment.
Приложения под Android использующие рекламу Admob начали массово падать