Ошибка зацикливания на эмуляторе Android
Кажется, я не могу запустить ни одно из своих приложений в моем эмуляторе Android, потому что каждые ~2 секунды появляется эта ошибка, и я считаю, что это приводит к сбою моего приложения...
Примечание: я ни разу не пытался записать звук, что я думаю, он пытается сделать... так почему это отображается? Хотя я пытался открыть 3D-модель в JPCT-AE с входным потоком, который никогда не работал!
Ошибка:
04-01 21:02:29.798 2160-2160/com.google.android.googlequicksearchbox:search I/MicroDetectionWorker: Micro detection mode: [mDetectionMode: [1]].
04-01 21:02:29.798 2160-2160/com.google.android.googlequicksearchbox:search I/AudioController: Using mInputStreamFactoryBuilder
04-01 21:02:29.805 2160-3055/com.google.android.googlequicksearchbox:search I/MicroRecognitionRunner: Starting detection.
04-01 21:02:29.805 2160-2204/com.google.android.googlequicksearchbox:search I/MicrophoneInputStream: mic_starting com.google.android.apps.gsa.staticplugins.z.c@652d8ac
04-01 21:02:29.806 1302-1640/? W/APM_AudioPolicyManager: getInputForAttr() failed opening input: samplingRate 16000, format 1, channelMask 10
04-01 21:02:29.806 2160-2204/com.google.android.googlequicksearchbox:search E/AudioRecord: Could not get audio input for session 441, record source 1999, sample rate 16000, format 0x1, channel mask 0x10, flags 0
04-01 21:02:29.807 2160-2204/com.google.android.googlequicksearchbox:search E/AudioRecord-JNI: Error creating AudioRecord instance: initialization check failed with status -22.
04-01 21:02:29.807 2160-2204/com.google.android.googlequicksearchbox:search E/android.media.AudioRecord: Error code -20 when initializing native AudioRecord object.
04-01 21:02:29.807 2160-2204/com.google.android.googlequicksearchbox:search I/MicrophoneInputStream: mic_started com.google.android.apps.gsa.staticplugins.z.c@652d8ac
--------- beginning of system
04-01 21:02:29.808 2160-2204/com.google.android.googlequicksearchbox:search E/ActivityThread: Failed to find provider info for com.google.android.apps.gsa.testing.ui.audio.recorded
04-01 21:02:29.809 2160-2160/com.google.android.googlequicksearchbox:search I/MicroDetectionWorker: onReady
04-01 21:02:29.844 2160-2204/com.google.android.googlequicksearchbox:search I/MicrophoneInputStream: mic_close com.google.android.apps.gsa.staticplugins.z.c@652d8ac
04-01 21:02:29.844 2160-3055/com.google.android.googlequicksearchbox:search I/MicroRecognitionRunner: Detection finished
04-01 21:02:29.844 2160-3055/com.google.android.googlequicksearchbox:search W/ErrorReporter: reportError [type: 211, code: 524300]: Error reading from input stream
04-01 21:02:29.845 2160-2353/com.google.android.googlequicksearchbox:search I/MicroRecognitionRunner: Stopping hotword detection.
04-01 21:02:29.846 2160-3055/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)
04-01 21:02:29.846 2160-3055/com.google.android.googlequicksearchbox:search I/AudioController: internalShutdown
04-01 21:02:29.847 2160-2160/com.google.android.googlequicksearchbox:search I/MicroDetector: Keeping mic open: false
04-01 21:02:29.847 2160-2160/com.google.android.googlequicksearchbox:search I/MicroDetectionWorker: #onError(false)
04-01 21:02:29.847 2160-3054/com.google.android.googlequicksearchbox:search I/DeviceStateChecker: DeviceStateChecker cancelled
Как я уже говорил, это происходит каждые 2 секунды... Что может быть причиной этого? Я пытался перезапустить эмулятор несколько раз, и это продолжает появляться!!
РЕДАКТИРОВАТЬ: я также удалил и воссоздал эмулятор и все те же ошибки
Пожалуйста, помогите мне!! Спасибо всем заранее:)
5 ответов
Android пытается прослушать микрофон, которого нет в эмуляторе, поэтому он заполняет logcat бесполезными следами стека. Чтобы остановить это, перейдите в приложение "Настройки" в Android и нажмите:
- Приложения и уведомления
- Разрешения приложений
- Микрофон
Тогда запретите использование микрофона для всех приложений.
Хотя отключение микрофона устранило некоторые из ошибок, приложение "Быстрый поиск" для меня сработало, как это было предложено OOI .
Настройки >> Приложения и уведомления >> Все приложения >> Google
Вот как отключить приложение обнаружения горячих слов ("Ok Google") в эмуляторе:
./adb shell "su root pm disable com.google.android.googlequicksearchbox"
Тот com.google.android.googlequicksearchbox
это приложение Google
Просто отключение его в настройках работало для меня.
В моем случае я исправил это в первый раз, добавив:
<uses-permission android:name="android.permission.RECORD_AUDIO" />
в AndroidManifest.xml
и обновить используемые в проекте пакеты google.android.gms до последней версии в файле build.gradle:
compile('com.google.android.gms:play-services-analytics:11.0.4') {
force = true;
}
compile('com.google.android.gms:play-services-ads:11.0.4') {
force = true;
}
compile('com.google.android.gms:play-services-gcm:11.0.4') {
force = true;
}
ОБНОВЛЕНИЕ: Позже, после обновления RN с 0,45 RN до 0,53 я обнаружил, что RECORD_AUDIO может быть удален (если не используется) с добавлением play-services-location
и play-services-base
как показано ниже:
compile('com.google.android.gms:play-services-analytics:11.0.4') {
force = true;
}
compile('com.google.android.gms:play-services-ads:11.0.4') {
force = true;
}
compile('com.google.android.gms:play-services-gcm:11.0.4') {
force = true;
}
compile('com.google.android.gms:play-services-location:11.0.4') {
force = true;
}
compile('com.google.android.gms:play-services-base:11.0.4') {
force = true;
}