2017-02-24 21 views
12

Mam aplikację MediaPlayer z funkcją przesyłania strumieniowego na żywo. Kiedy testuję aplikację za pomocą fizycznego urządzenia (API 22 Lollipop i API 23 Marshmallow) nie ma problemów z uruchomieniem strumienia. Dziś chcę przetestować aplikację za pomocą emulatora (API 25 Nougat). Strumień nie działa i pojawia się następujący błąd:Przepełnienie bufora GsaIOException, brak dostępnego miejsca

(SourceFile:139) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)  at java.lang.Thread.run(Thread.java:761)  at com.google.android.apps.gsa.shared.util.concurrent.a.ad$1.run(SourceFile:85)  02-23 23:58:09.834 2166-3554/com.google.android.googlequicksearchbox:search W/ErrorProcessor: onFatalError, processing error from engine(4) com.google.android.apps.gsa.shared.speech.a.g: Error reading from input stream at com.google.android.apps.gsa.staticplugins.recognizer.i.a.a(SourceFile:342) at com.google.android.apps.gsa.staticplugins.recognizer.i.a$1.run(SourceFile:1367) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:428) at java.util.concurrent.FutureTask.run(FutureTask.java:237) at com.google.android.apps.gsa.shared.util.concurrent.a.ak.run(SourceFile:66) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607) at java.lang.Thread.run(Thread.java:761) at com.google.android.apps.gsa.shared.util.concurrent.a.ad$1.run(SourceFile:85) Caused by: com.google.android.apps.gsa.shared.exception.GsaIOException: Error code: 393238 | Buffer overflow, no available space. at com.google.android.apps.gsa.speech.audio.Tee.g(SourceFile:2531) at com.google.android.apps.gsa.speech.audio.ap.read(SourceFile:555) at java.io.InputStream.read(InputStream.java:101) at com.google.android.apps.gsa.speech.audio.al.run(SourceFile:362) at com.google.android.apps.gsa.speech.audio.ak$1.run(SourceFile:471) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:428) at java.util.concurrent.FutureTask.run(FutureTask.java:237) at com.google.android.apps.gsa.shared.util.concurrent.a.ak.run(SourceFile:66) at com.google.android.apps.gsa.shared.util.concurrent.a.ax.run(SourceFile:139) at com.google.android.apps.gsa.shared.util.concurrent.a.ax.run(SourceFile:139) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1133)  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:607)  at java.lang.Thread.run(Thread.java:761)  at com.google.android.apps.gsa.shared.util.concurrent.a.ad$1.run(SourceFile:85) 

Potrafię rozpoznać tylko jedną rzecz, która moim zdaniem jest ważna.

GsaIOException: Error code: 393238 | Buffer overflow, no available space

Ale nie wiem, co to może oznaczać. Czy ktokolwiek może wyjaśnić, jaki to wyjątek? I gdzie mogę wyszukać kod, aby znaleźć problem?

+0

Nie jesteś pewien, ale czy zamontowałeś kartę SD na swoim urządzeniu wirtualnym? – sschrass

Odpowiedz

1

Otrzymałem ten sam problem i zrobiłem następujące rzeczy, aby spowodować awarię. Kilka aplikacji api, które napisałem, potrzebowało przydzielić trochę pamięci, ponieważ plik musiał zostać przeanalizowany i przechowywany w tym buforze. Rozpocząłem analizowanie pliku bez przydzielania bufora, dlatego odebrałem ten komunikat. Możesz więc zajrzeć do podobnego kodu, gdzie możesz robić to samo.

1

Miałem podobny problem, u mnie również ulegał zawieszaniu na urządzeniach, z tym samym błędem. Jest to, jak naprawiłem go do urządzeń:

<uses-permission android:name="android.permission.RECORD_AUDIO" /> 

Więcej szczegółów tutaj: Looping Error on Android Emulator

Aby uczynić pracę aplikacji w symulatorze, po zastosowaniu poprawki z powyższego linku, musiałem stworzyć nowy symulator w oparciu na architekturze x86 (nie x86_64 jak poprzednio) i zadziałało.

0

Rozwiązałem to, usuwając pliki apk, które wcześniej utworzyłem i nadal pozostają na liście Pliki projektów.

Powiązane problemy