Android Studio模拟器运行Flutter ARCore应用崩溃的解决求助
问题:Flutter ARCore应用在AVD上崩溃,无法启动ARCore安装程序
在Android Studio的Android虚拟设备(AVD)上运行Flutter的ARCore增强现实应用时,点击运行按钮后应用直接崩溃。已尝试修改AVD的OpenGL ES API级别,但问题仍未解决。报错核心原因是找不到处理Intent { act=android.intent.action.VIEW dat=market://details?id=com.google.ar.core }的Activity,导致ARCore安装程序无法启动。
完整报错日志
Launching lib\main.dart on Android SDK built for x86 in debug mode... Running Gradle task 'assembleDebug'... Parameter format not correct - √ Built build\app\outputs\flutter-apk\app-debug.apk. Installing build\app\outputs\flutter-apk\app-debug.apk... Debug service listening on ws://127.0.0.1:54829/f3hHxCxdpnM=/ws Syncing files to device Android SDK built for x86... I/Filament( 3664): Filament library loaded. D/EGL_emulation( 3664): eglCreateContext: 0xf7111ab0: maj 3 min 0 rcv 3 D/EGL_emulation( 3664): eglMakeCurrent: 0xf7111ab0: ver 3 0 (tinfo 0xf7478630) (first time) E/Filament( 3664): Error opening trace file: No such file or directory (2) I/Filament( 3664): FEngine (32 bits) created at 0xb2e0b030 (threading is enabled) D/Filament( 3664): Using ASurfaceTexture D/Filament( 3664): FEngine resolved backend: OpenGL D/HostConnection( 3664): HostConnection::get() New Host Connection established 0xf7112990, tid 3709 D/HostConnection( 3664): HostComposition ext ANDROID_EMU_CHECKSUM_HELPER_v1 ANDROID_EMU_native_sync_v2 ANDROID_EMU_native_sync_v3 ANDROID_EMU_native_sync_v4 ANDROID_EMU_dma_v1 ANDROID_EMU_direct_mem ANDROID_EMU_vulkan ANDROID_EMU_deferred_vulkan_commands ANDROID_EMU_vulkan_null_optional_strings ANDROID_EMU_vulkan_create_resources_with_requirements ANDROID_EMU_YUV_Cache ANDROID_EMU_vulkan_ignored_handles ANDROID_EMU_has_shared_slots_host_memory_allocator ANDROID_EMU_vulkan_free_memory_sync ANDROID_EMU_vulkan_shader_float16_int8 ANDROID_EMU_vulkan_async_queue_submit ANDROID_EMU_sync_buffer_data ANDROID_EMU_vulkan_async_qsri ANDROID_EMU_read_color_buffer_dma GL_OES_EGL_image_external_essl3 GL_OES_vertex_array_object GL_KHR_texture_compression_astc_ldr ANDROID_EMU_host_side_tracing ANDROID_EMU_gles_max_version_3_0 D/EGL_emulation( 3664): eglCreateContext: 0xf711f8f0: maj 3 min 0 rcv 3 D/EGL_emulation( 3664): eglMakeCurrent: 0xf711f8f0: ver 3 0 (tinfo 0xc3e5ea70) (first time) I/SceneView( 3664): Optional library com.google.ar.sceneform.animation loaded. I/PlatformViewsController( 3664): Hosting view in a virtual display for platform view: 0 E/EGL_emulation( 3664): eglQueryContext 32c0 EGL_BAD_ATTRIBUTE E/EGL_emulation( 3664): tid 3664: eglQueryContext(2019): error 0x3004 (EGL_BAD_ATTRIBUTE) W/Gralloc4( 3664): allocator 3.x is not supported I/Choreographer( 3664): Skipped 35 frames! The application may be doing too much work on its main thread. I/OpenGLRenderer( 3664): Davey! duration=700ms; Flags=1, IntendedVsync=1399901313040, Vsync=1400484646350, OldestInputEvent=9223372036854775807, NewestInputEvent=0, HandleInputStart=1400497425755, AnimationStart=1400497426772, PerformTraversalsStart=1400497427266, DrawStart=1400581604560, SyncQueued=1400582200126, SyncStart=1400586204044, IssueDrawCommandsStart=1400586490247, SwapBuffers=1400594245878, FrameCompleted=1400605888737, DequeueBufferDuration=5322886, QueueBufferDuration=805595, GpuCompleted=34359738376, I/com.difrancescogianmarco.arcore_flutter_plugin.utils.ArCoreUtils( 3664): ArCore INSTALL REQUESTED I/com.difrancescogianmarco.arcore_flutter_plugin.utils.ArCoreUtils( 3664): ArCore INSTALL REQUESTED W/ARCore-InstallService( 3664): bindService returned false. W/ARCore-InstallService( 3664): requestInstall bind failed, launching fullscreen. D/AndroidRuntime( 3664): Shutting down VM E/AndroidRuntime( 3664): FATAL EXCEPTION: main E/AndroidRuntime( 3664): Process: com.example.elibrary_frontend, PID: 3664 E/AndroidRuntime( 3664): java.lang.RuntimeException: Unable to resume activity {com.example.elibrary_frontend/com.example.elibrary_frontend.MainActivity}: com.google.ar.core.exceptions.FatalException: Failed to launch installer. E/AndroidRuntime( 3664): at android.app.ActivityThread.performResumeActivity(ActivityThread.java:4444) E/AndroidRuntime( 3664): at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:4476) E/AndroidRuntime( 3664): at android.app.servertransaction.ResumeActivityItem.execute(ResumeActivityItem.java:52) E/AndroidRuntime( 3664): at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:176) E/AndroidRuntime( 3664): at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:97) E/AndroidRuntime( 3664): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2066) E/AndroidRuntime( 3664): at android.os.Handler.dispatchMessage(Handler.java:106) E/AndroidRuntime( 3664): at android.os.Looper.loop(Looper.java:223) E/AndroidRuntime( 3664): at android.app.ActivityThread.main(ActivityThread.java:7656) E/AndroidRuntime( 3664): at java.lang.reflect.Method.invoke(Native Method) E/AndroidRuntime( 3664): at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592) E/AndroidRuntime( 3664): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947) E/AndroidRuntime( 3664): Caused by: com.google.ar.core.exceptions.FatalException: Failed to launch installer. E/AndroidRuntime( 3664): at com.google.ar.core.u.o(InstallService.java:6) E/AndroidRuntime( 3664): at com.google.ar.core.u.d(InstallService.java:10) E/AndroidRuntime( 3664): at com.google.ar.core.InstallActivity.startInstaller(InstallActivity.java:3) E/AndroidRuntime( 3664): at com.google.ar.core.InstallActivity.onResume(InstallActivity.java:3) E/AndroidRuntime( 3664): at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1456) E/AndroidRuntime( 3664): at android.app.Activity.performResume(Activity.java:8129) E/AndroidRuntime( 3664): at android.app.ActivityThread.performResumeActivity(ActivityThread.java:4434) E/AndroidRuntime( 3664): ... 11 more E/AndroidRuntime( 3664): Caused by: android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=market://details?id=com.google.ar.core } E/AndroidRuntime( 3664): at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:2067) E/AndroidRuntime( 3664): at android.app.Instrumentation.execStartActivity(Instrumentation.java:1727) E/AndroidRuntime( 3664): at android.app.Activity.startActivityForResult(Activity.java:5314) E/AndroidRuntime( 3664): at android.app.Activity.startActivityForResult(Activity.java:5272) E/AndroidRuntime( 3664): at android.app.Activity.startActivity(Activity.java:5658) E/AndroidRuntime( 3664): at android.app.Activity.startActivity(Activity.java:5611) E/AndroidRuntime( 3664): at com.google.ar.core.u.o(InstallService.java:5) E/AndroidRuntime( 3664): ... 17 more I/Process ( 3664): Sending signal. PID: 3664 SIG: 9 Lost connection to device.
解决方法
核心原因
普通AVD未预装Google Play服务和ARCore,且无法通过market://链接跳转安装,因为模拟器没有配置可正常工作的Google Play商店。
步骤1:创建支持AR的AVD
- 打开Android Studio的AVD Manager,点击Create Virtual Device。
- 选择Pixel系列设备(推荐Pixel 4及以上),点击Next。
- 在系统镜像选择界面,切换到Google Play标签,选择Android版本≥7.0且带有Google Play标识的镜像,下载并安装。
- 启动新创建的AVD,打开Google Play商店,登录账号后搜索并安装ARCore应用。
步骤2:配置Flutter项目依赖
确保pubspec.yaml中的ARCore插件版本适配:
dependencies: flutter: sdk: flutter arcore_flutter_plugin: ^0.4.0 # 替换为最新兼容版本
同时在android/app/build.gradle中添加ARCore依赖:
dependencies { implementation 'com.google.ar:core:1.32.0' // 使用最新稳定版本 }
步骤3:启用模拟器AR支持
启动AVD后,点击右侧的Extended controls(三个点图标),进入Settings > Advanced,设置:
- OpenGL ES API级别为3.1或更高
- 勾选Enable AR simulation(若存在该选项)
步骤4:手动安装ARCore(可选)
若无法通过Google Play安装,可下载对应x86/x86_64架构的ARCore APK,通过以下命令安装到模拟器:
adb install arcore.apk
内容的提问来源于stack exchange,提问作者sandika dassanayake
相关产品推荐
相关产品推荐

