Android模拟器上的循环错误

51

我似乎无法在我的Android模拟器中启动任何应用程序,因为每 ~2秒钟就会弹出此错误,我认为这是导致我的应用程序崩溃的原因...

注意:我从来没有尝试过录制音频,但我认为它正在尝试录制。那么为什么它要显示这个?虽然我尝试使用一个从未起作用的inputstream在JPCT-AE中打开了一个3D模型!

错误信息:

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:8504-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秒就会弹出...可能是什么原因导致的?我已经试过多次重新启动模拟器,但问题仍然存在!

编辑:我还尝试删除并重新创建模拟器,但仍然出现同样的错误

请帮助我!!提前感谢大家 :)


重置模拟器为出厂设置怎么样,或者直接删除并重新创建它。 - lionscribe
之前尝试过了,但我的logcat仍然显示错误 :/ - hewiefreeman
我有同样的问题。你正在运行哪个版本的Android Studio?这非常令人恼火。我希望我们能找到问题的根源。我使用的是Android Studio 2.3.1 Build #AI-162.3871768, built on April 1, 2017 JRE: 1.8.0_112-release-b06 x86_64 JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o - jungledev
1
我的 Nexus 6 AVD 遇到了这个问题。尝试清除数据,但没有改变。我创建了一个 Nexus 5x AVD,它似乎工作正常。然后切换回 Nexus 6,它也正常工作了。不知道为什么。 - bronson
5个回答

54

Android正试图监听麦克风,但模拟器上没有麦克风,因此它会用无用的堆栈跟踪信息填满日志记录。要停止这种情况,打开Android中的“设置”应用,然后按照以下步骤操作:

  1. 点击“应用和通知”
  2. 点击“应用权限”
  3. 点击“麦克风”

然后禁止所有应用程序使用麦克风。


非常感谢!那真的很烦人 >_< - hewiefreeman
5
最新的sdk在Android模拟器上仍然会出现这个错误。虽然这在我的实体设备上可以运行,但它不能像模拟器一样运行最新版本的Android。有什么建议吗? - hewiefreeman
2
这是指谷歌是否定期监听所有用户的麦克风输入流以供他们使用。 - Harshit Laddha
9
这是正确的答案 - 需要注意的一点是我不得不点击右上角的“三个点”,然后点击“显示系统”,以禁止访问Google Play服务,这就是导致这个错误的原因。 - Xcalibur
2
@deadman 是的,它可以。你觉得谷歌搜索是如何通过说“嘿,谷歌”而出现的呢? - hewiefreeman
我尝试过了,但没有成功。原来我只需要关闭所有的模拟器--我不小心启动了一个与Android Studio一起运行的模拟器。当我这样做时,那些消息就不再产生了。 - Alyoshak

33

尽管关闭麦克风能减少一些错误,但是像OOI建议的那样禁用Quick Search App对我有帮助。

设置 >> 应用和通知 >> 所有应用 >> 谷歌

进入图片描述


停止它有所帮助。 - valk

7
以下是如何在模拟器中禁用热词检测(“Ok Google”)应用程序的步骤:
./adb shell "su root pm disable com.google.android.googlequicksearchbox"

7

com.google.android.googlequicksearchbox谷歌应用

在设置中简单地将其禁用对我有用。


1
在我的情况下,我第一次修复了这个问题,通过添加以下内容:


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

AndroidManifest.xml 中,并在 build.gradle 文件中更新项目中使用的 google.android.gms 包到最新版本:
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之后,可以通过添加以下内容的play-services-locationplay-services-base来删除(如果未使用)RECORD_AUDIO

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;
}

4
不是我的应用程序引起了错误,而是com.google.android.googlequicksearchbox试图访问麦克风。我似乎无法禁止该软件包的麦克风使用。 - hewiefreeman

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接