fq05 2025-08-29 15:45 采纳率: 0%
浏览 10

android 启动模拟器失败

android 项目,build成功,run 成功,模拟器安装成功
1.sdk:36
2.模拟器:pixel 9 api 36
模拟器启动后,run 程式时,一直出现以下错误
Error running 'app'
The application could not be installed. Installation failed due to: 'Error code: 'UNKNOWN', message='Unknown failure: 'Exception occurred while executing 'install-write':'
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.content.pm.PackageManagerInternal.freeStorage(java.lang.String, long, int)' on a null object reference
at com.android.server.StorageManagerService.allocateBytes(StorageManagerService.java:4305)
at android.os.storage.StorageManager.allocateBytes(StorageManager.java:2381)
at android.os.storage.StorageManager.allocateBytes(StorageManager.java:2459)
at com.android.server.pm.PackageInstallerSession.doWriteInternal(PackageInstallerSession.java:2042)
at com.android.server.pm.PackageInstallerSession.write(PackageInstallerSession.java:1944)
at android.content.pm.PackageInstaller$Session.write(PackageInstaller.java:1630)
at com.android.server.pm.PackageManagerShellCommand.doWriteSplit(PackageManagerShellCommand.java:4236)
at com.android.server.pm.PackageManagerShellCommand.runInstallWrite(PackageManagerShellCommand.java:1764)
at com.android.server.pm.PackageManagerShellCommand.onCommand(PackageManagerShellCommand.java:261)
at com.android.modules.utils.BasicShellCommandHandler.exec(BasicShellCommandHandler.java:97)
at android.os.ShellCommand.exec(ShellCommand.java:38)
at com.android.server.pm.PackageManagerService$IPackageManagerImpl.onShellCommand(PackageManagerService.java:6684)
at android.os.Binder.shellCommand(Binder.java:1151)
at android.os.Binder.onTransact(Binder.java:953)
at android.content.pm.IPackageManager$Stub.onTransact(IPackageManager.java:4729)
at com.android.server.pm.PackageManagerService$IPackageManagerImpl.onTransact(PackageManagerService.java:6668)
at android.os.Binder.execTransactInternal(Binder.java:1426)
at android.os.Binder.execTransact(Binder.java:1365)''
List of apks:
[0] 'G:\Android\Project\Student\app\build\intermediates\apk\debug\app-debug.apk'
3.通过以下方式

1)已经冷启动模拟器
2)Android Gradle 插件和 SDK重新下载
3)新建模拟器
4)G:\Android\Project\Student\app\build\intermediates\apk\debug\app-debug.apk'目录下的文件存在
仍然没有解决,是什么原因?具体如何查看

  • 写回答

5条回答 默认 最新

  • 檀越@新空间 2025-08-29 15:46
    关注

    下午好🌅🌅🌅
    本答案参考通义千问

    根据你提供的信息,Android 项目构建成功、运行成功、模拟器安装成功,但在运行应用时出现 Error code: 'UNKNOWN' 的错误,且日志中显示了一个 NullPointerException,涉及 PackageManagerInternal.freeStorage() 方法。这是一个典型的 模拟器/系统服务异常,可能由以下几种原因引起:


    一、问题分析

    1. 模拟器存储空间不足

    • 模拟器的磁盘空间不足可能导致 PackageManager 在尝试分配存储时抛出空指针异常。
    • 尽管你的 APK 文件存在,但模拟器内部无法完成安装。

    2. 模拟器镜像损坏或不兼容 SDK 36

    • 使用的 Pixel 9 API 36 模拟器可能与当前 Android Studio 或 SDK 版本存在兼容性问题。
    • 特别是 freeStorage() 方法在某些版本中可能未正确实现。

    3. ADB 服务异常

    • ADB(Android Debug Bridge)可能出现异常,导致安装失败。
    • 可能需要重启 ADB 服务或重新连接设备。

    4. 系统权限问题

    • 某些系统级操作(如存储管理)可能因权限不足而失败。

    🔧 二、解决方案

    1. 清理模拟器存储空间

    • 步骤:
      • 打开 Android Studio
      • 进入 AVD Manager
      • 选择你的 Pixel 9 模拟器,点击 "Wipe Data"
      • 如果仍无法解决,可以尝试删除该模拟器并重新创建一个。

    2. 使用不同的模拟器配置

    • 建议使用 API 35 或更低版本,以避免 SDK 36 的潜在兼容性问题。
    • 创建新的 AVD(Android Virtual Device)
      • 打开 AVD Manager
      • 点击 "Create Virtual Device"
      • 选择 Pixel 4aPixel 5,API Level 35。
      • 启动新模拟器并尝试再次安装应用。

    3. 检查并修复 ADB 服务

    • 执行以下命令:
      adb kill-server
      adb start-server
      
    • 如果仍然有问题,可以尝试:
      adb logcat | grep "PackageManager"
      

      查看是否有关于安装失败的详细日志。

    4. 修改 Gradle 配置(可选)

    • 如果你怀疑是 Gradle 插件的问题,可以尝试更新插件版本:
      • 修改 build.gradle(Project-level):
        buildscript {
            ext.kotlin_version = '1.8.0'
            repositories {
                google()
                mavenCentral()
            }
            dependencies {
                classpath 'com.android.tools.build:gradle:8.0.2' // 更新为最新稳定版
                classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
            }
        }
        
      • 同步项目后重新运行。

    5. 手动安装 APK 到模拟器

    • 如果以上方法无效,可以尝试手动安装 APK:
      • 打开终端或命令行工具。
      • 执行以下命令:
        adb install G:\Android\Project\Student\app\build\intermediates\apk\debug\app-debug.apk
        
      • 如果提示“Failure [INSTALL_FAILED_INSUFFICIENT_STORAGE]”,说明模拟器存储空间不足,需清理或更换模拟器。

    🧾 三、如何查看详细日志?

    1. 使用 ADB Logcat 查看日志

    • 在 Android Studio 中打开 Logcat 窗口。
    • 设置过滤器为 PackageManagerException
    • 查看是否有如下类似日志:
      E/PackageManager: Failed to install app: java.lang.NullPointerException
      

    2. 使用命令行查看日志

    • 执行:
      adb logcat -s PackageManager
      

    🚨 四、最终建议

    | 建议 | 说明 | |------|------| | ❌ 不推荐继续使用 API 36 模拟器 | 存在已知兼容性问题 | | ✅ 推荐使用 API 35 或 34 | 更稳定,兼容性更好 | | ✅ 清理模拟器数据后再试 | 避免存储空间不足问题 | | ✅ 更新 Android Studio 和 Gradle 插件 | 解决潜在的版本冲突 |


    🧩 示例:新建 AVD(Pixel 5 API 35)

    1. 打开 AVD Manager
    2. 点击 "Create Virtual Device"
    3. 选择 Pixel 5,API Level 35(Android 12.1)。
    4. 完成设置并启动模拟器。
    5. 再次运行应用。

    如果你已经尝试了上述所有方法仍未解决问题,请提供以下信息以便进一步排查:

    • Android Studio 版本
    • Gradle 插件版本
    • 完整的 ADB logcat 日志(截图或文本)
    • 模拟器配置详情(如 RAM、存储等)

    我可以帮助你更精准地定位问题!

    评论

报告相同问题?

问题事件

  • 创建了问题 8月29日