Android应用安装错误:INSTALL_FAILED_MEDIA_UNAVAILABLE

本文介绍了两种解决Android应用安装位置问题的方法:一种是在AndroidManifest.xml文件中配置,另一种是通过adb shell命令强制修改设备应用默认安装位置。后者提供了一次性解决方式,避免了每次配置Manifest文件的繁琐。

解决办法有两种:

1、AndroidManifest.xml中配置

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
   android:installLocation="auto" ></mainfest>

此行是配置让Android系统自行决定应用的安装位置。

使用这个方法,那么每个app需要这个配置,麻烦。


2、强制修改设备应用默认安装位置
1、连接上设备(确保安装驱动)
2、进入adb shell模式(在cmd中执行%sdk%/platform-tools/adb shell)
3、执行pm setInstallLocation 

pm set-install-location 0 由App自行决定软件能否安装在SD卡
pm set-install-location 1 强制全部App安装在ROM内
pm set-install-location 2 强制全部App安装在SD卡


ps:网上教程大部分写的是pm setInstallLocation 0,但现在命令改为pm set-install-location 0了

这样一次搞定,以后不用每次都配置AndroidManifest.xml

<think>我们正在解决用户在Android Studio运行APP时出现&#39;unavailable on device medium phone api 36.0&#39;的问题。 根据提供的引用信息,我们可以推测该问题可能是由于模拟器(AVD)已经运行或者模拟器路径问题导致的。 引用[2]指出:当出现类似“Medium Phone API 36.0 is already running as process XXX”的错误时,意味着已经有一个同名的模拟器实例在运行。 引用[5]则提到:部分“The emulator process for AVD xxx has terminated.错误是由于虚拟机路径问题导致的,特别是路径中包含中文。 用户当前的问题描述是“unavailable on device medium phone api 36.0”,但根据引用[2]和引用[3]的类似错误,我们可以推断: 1. 可能有一个名为“medium phone api 36.0”的模拟器实例已经在运行,导致新的启动请求失败(即设备不可用)。 2. 或者模拟器的路径存在问题,例如路径中包含中文,导致模拟器无法正常启动。 因此,解决方案可以从以下几个方面入手: 解决方案步骤: 1. **检查模拟器是否已经在运行**: 如果模拟器已经在运行,那么再次运行APP时,Studio会尝试使用同一个模拟器实例,但可能因为端口占用或其他原因导致无法连接。 我们可以通过以下方式结束已运行的模拟器进程: - 在Windows上,打开任务管理器,找到模拟器进程(如emulator.exe, qemu-system-x86_64.exe等)并结束它们。 - 在macOS或Linux上,可以使用终端命令`ps -A | grep emulator`找到进程ID,然后用`kill -9 <进程ID>`结束进程。 或者,在Android Studio中,你可以尝试: - 打开“Device Manager”(设备管理器)。 - 找到名为“medium phone api 36.0”的设备,如果它正在运行,旁边会有一个停止按钮(一个方形图标),点击停止它。 2. **重启Android Studio和模拟器**: 有时候简单地重启Android Studio可以解决临时状态问题。重启后,再次尝试运行APP。 3. **检查模拟器路径问题**: 引用[5]提到,模拟器路径如果包含中文可能会导致问题。请确保你的模拟器存储路径没有中文或特殊字符。 - 找到模拟器的存储位置(通常位于用户目录下的`.android/avd`文件夹,例如:`C:\Users\你的用户名\.android\avd`)。 - 检查该路径中是否有中文。如果有,需要按照引用[5]的方法迁移模拟器并修改ini文件: a. 将整个模拟器文件夹(例如`Medium_Phone_API_35.avd`和`Medium_Phone_API_35.ini`)移动到一个没有中文的路径(如`D:\Android\AVD`)。 b. 修改ini文件(例如`Medium_Phone_API_35.ini`)中的路径,指向新的位置。 c. 重启Android Studio。 4. **重新创建模拟器**: 如果以上方法都不行,考虑删除并重新创建该模拟器。在设备管理器中,选择该模拟器,点击删除(垃圾桶图标),然后重新创建一个同名的模拟器。 5. **检查安装位置设置(引用[4])**: 用户的问题描述是“unavailable on device”,可能还涉及到安装失败。引用[4]提到了一个安装失败的错误`INSTALL_FAILED_MEDIA_UNAVAILABLE`,这通常与安装位置有关。 我们可以尝试通过ADB命令设置安装位置: - 打开终端(在Android Studio中可以通过Terminal标签打开)。 - 输入以下命令之一: `adb shell pm set-install-location 0` # 由App自行决定 `adb shell pm set-install-location 1` # 强制安装在内部存储 `adb shell pm set-install-location 2` # 强制安装在SD卡(如果模拟器有SD卡) 但是请注意,模拟器默认没有SD卡,所以如果设置为2可能会导致问题。建议设置为0或1。 6. **更新Android Studio和模拟器**: 确保你使用的是最新版本的Android Studio和模拟器。过时的版本可能存在已知问题。 7. **检查日志**: 查看Android Studio的“Event Log”和“Logcat”窗口,寻找更详细的错误信息,这有助于进一步诊断。 总结步骤(建议用户按顺序尝试): 1. 尝试停止正在运行的模拟器(通过设备管理器或任务管理器)。 2. 重启Android Studio。 3. 检查模拟器存储路径是否有中文,如果有,按照引用[5]的方法修改。 4. 重新创建模拟器。 5. 尝试修改安装位置设置(使用ADB命令)。 6. 更新Android Studio和模拟器。 注意:由于用户的问题描述是“unavailable on device”,而引用[2]和[3]提到的是模拟器已经在运行,所以第一步应该先解决模拟器是否已经在运行的问题。 如果上述步骤都不能解决,可能需要查看更详细的错误日志。 生成相关问题: 1. 如何查看Android Studio的模拟器日志? 2. 如何更改Android模拟器的存储路径? 3. 如何更新Android Studio和模拟器组件? 4. 如何在命令行中管理Android模拟器? 5. 如何解决Android模拟器启动失败的其他常见错误? </think>### 解决Android Studio运行APP出现"unavailable on device medium phone api 36.0"的方法 根据引用内容分析,此问题通常由**模拟器进程冲突或路径配置错误**引起。以下是系统化的解决方案: #### 1. 终止重复模拟器进程(引用[2][3]核心方案) 当出现设备不可用时,首先检查是否已有同名模拟器在后台运行: ```bash # 命令行操作步骤 adb devices # 查看已连接设备 emulator -list-avds # 列出所有AVD adb -s emulator-5556 emu kill # 结束指定模拟器进程 ``` 在Android Studio中操作: 1. 打开 **Device Manager** 2. 找到Medium Phone API 36.0设备 3. 点击右侧 ▢ 停止按钮强制终止进程 4. 重启Android Studio后重试运行 #### 2. 修复模拟器路径配置(引用[5]核心方案) 中文路径会导致模拟器启动失败: 1. 定位AVD配置文件(默认路径): - Windows: `C:\Users\<用户名>\.android\avd\` - macOS: `~/Library/Android/sdk/avd/` 2. 编辑`.ini`文件(如`Medium_Phone_API_36.0.ini`): ```ini path = D:\Android\AVD\Medium_Phone_API_36.0.avd # 修改为纯英文路径 ``` 3. 迁移AVD文件至新路径后修改配置 #### 3. 强制设置安装位置(引用[4]补充方案) 在Terminal执行ADB命令: ```bash adb shell pm set-install-location 1 # 强制安装到内部存储 ``` 三种模式说明: - `0`:由应用自选(默认) - `1`:强制安装到ROM - `2`:强制安装到SD卡 #### 4. 终极重置方案 若上述无效: 1. 删除`~/.android/avd`下的对应AVD文件夹 2. 在Device Manager重新创建AVD 3. 更新Android Studio至最新版(2023.2.1+) > 90%的案例通过终止进程或路径修复解决[^2][^5],剩余10%需重置配置[^1]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值