模拟器和设备上的 Ionic 应用程序中的渲染器进程崩溃 - [错误 .cc(154)]

问题描述 投票:0回答:1

我正在开发一个 Ionic 应用程序,在 Android 模拟器上运行它时遇到崩溃。应用程序崩溃并在 logcat 中显示以下错误消息:

2024-07-14 16:18:21.404  6366-6480  ProfileInstaller        io.ionic.starter                     D  Installing profile for io.ionic.starter
2024-07-14 16:18:37.514  6366-6389  cr_ChildProcessConn     io.ionic.starter                     W  onServiceDisconnected (crash or killed by oom): pid=6392 bindings:W  S
2024-07-14 16:18:37.543  6366-6366  chromium                io.ionic.starter                     E  [ERROR:aw_browser_terminator.cc(154)] Renderer process (6392) crash detected (code 5).
2024-07-14 16:18:37.548  6366-6366  chromium                io.ionic.starter                     A  [FATAL:crashpad_client_linux.cc(745)] Render process (6392)'s crash wasn't handled by all associated  webviews, triggering application crash.
2024-07-14 16:18:37.548  6366-6366  libc                    io.ionic.starter                     A  Fatal signal 5 (SIGTRAP), code 128 (SI_KERNEL), fault addr 0x0 in tid 6366 (o.ionic.starter), pid 6366 (o.ionic.starter)
2024-07-14 16:18:38.027  6494-6494  DEBUG                   crash_dump64                         A  Cmdline: io.ionic.starter

离子版本:7.2.0

Android API 35

我找不到任何其他有用的登录 logcat。如果我在浏览器中使用离子服务运行它工作正常

android ionic-framework chromium
1个回答
0
投票

要解决 Android 模拟器和设备上 Ionic 应用程序中的渲染器进程崩溃问题,请按照以下步骤操作:

1.检查您的依赖关系

确保您的所有项目依赖项都是最新的。这包括 Ionic CLI、Cordova、Angular 和其他相关软件包。

运行这些命令来更新 Ionic 和 Cordova:

npm install -g ionic cordova

2.更新Android平台

确保您的 Android 平台是最新的。

cordova platform update android

3.使用 Crosswalk 以获得更好的兼容性

Crosswalk WebView插件可以为旧的Android版本提供更好的兼容性和稳定性。但是,Crosswalk 不再得到积极维护,因此请将此视为临时解决方案。

cordova plugin add cordova-plugin-crosswalk-webview

4.检查 Chromium 问题

该错误表明 WebView 使用的 Chromium 引擎存在问题。确保您没有使用已弃用的 Chromium 版本。有时,这些问题可以通过强制 WebView 更新来解决。

5.配置 WebView 设置

config.xml
文件中调整 WebView 设置。增加 WebView 可用的内存,并在必要时禁用硬件加速。

将这些首选项添加到您的

config.xml
:

<preference name="ScrollEnabled" value="false" />
<preference name="android-minSdkVersion" value="22" />
<preference name="android-targetSdkVersion" value="30" />
<preference name="android-build-tool" value="28.0.3" />
<preference name="android-webview" value="true" />
<preference name="WebViewBounce" value="false" />
<preference name="UIWebViewBounce" value="false" />
<preference name="DisallowOverscroll" value="true" />
<preference name="android-persistentFileLocation" value="Compatibility" />

6.使用硬件加速 WebView

通过修改

AndroidManifest.xml
文件启用或禁用应用程序中的硬件加速。

<application android:hardwareAccelerated="true" ... >

7.监控内存使用情况

确保您的应用程序不会消耗太多内存,否则可能会导致崩溃。使用 Chrome DevTools 来分析和监控内存使用情况。

8.调试和日志

使用

adb logcat
从 Android 设备或模拟器获取详细日志。这可以提供更多关于可能导致崩溃的原因的见解。

示例步骤:

  1. 更新依赖关系:

    npm install -g ionic cordova
    
  2. 更新Android平台:

    cordova platform update android
    
  3. 添加Crosswalk WebView(如有必要)

    cordova plugin add cordova-plugin-crosswalk-webview
    
  4. 修改

    config.xml

    <widget id="io.ionic.starter" version="0.0.1" xmlns="http://www.w3.org/ns/widgets" xmlns:cdv="http://cordova.apache.org/ns/1.0">
        ...
        <preference name="ScrollEnabled" value="false" />
        <preference name="android-minSdkVersion" value="22" />
        <preference name="android-targetSdkVersion" value="30" />
        <preference name="android-build-tool" value="28.0.3" />
        <preference name="android-webview" value="true" />
        <preference name="WebViewBounce" value="false" />
        <preference name="UIWebViewBounce" value="false" />
        <preference name="DisallowOverscroll" value="true" />
        <preference name="android-persistentFileLocation" value="Compatibility" />
        ...
    </widget>
    
  5. 修改

    AndroidManifest.xml

    <application android:hardwareAccelerated="true" ... >
    
  6. 使用

    adb logcat
    进行调试:

    adb logcat
    

最后步骤

这些步骤应该有助于缓解 Ionic 应用程序中的渲染器进程崩溃问题。如果问题仍然存在,请考虑创建一个最小的可重现示例,并向 Ionic 社区或相关论坛寻求帮助。由于在混合移动应用程序中渲染 Web 内容涉及多种因素,这个问题可能非常复杂。

© www.soinside.com 2019 - 2024. All rights reserved.