Android:安装 APK 时出错
Android: Error while installing APKs
我正在慢慢地尝试在 Android Studio
中完成一些简单的任务。以下应用程序安装在模拟器上没有任何错误。但是当我尝试在真机Redmi 3S上安装时出现了这个错误:
Unknown failure (Failure - not installed for 0)
Error while Installing APKs
我在这里遇到了类似的问题,但在这些情况下,错误是由于未启用调试或未接受应用程序安装引起的。但是,我允许调试,并且我还尝试在 Studio 中安装 一些其他应用程序 ,它 运行良好 。
所以问题可能是,代码有什么问题。
MainActivity.java
package tlacitko.button;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void sendMessage(View view) {
new Thread(new Runnable() {
public void run() {
runOnUiThread(new Runnable() {
@Override
public void run() {
try{
URL url = new URL("http://147.32.186.51:8080");
// HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
InputStream is = url.openStream();
BufferedReader br = new BufferedReader(new
InputStreamReader(is));
String s = "";
}catch(MalformedURLException ex){
}catch(IOException e){
}
}
});
}
}).start();
}
}
和 xml 代码:
activity_main.xml
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Try to connect the server."
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="16dp"
android:layout_marginRight="7dp"
android:layout_marginTop="16dp"
android:onClick="sendMessage"
android:text="Conncect"
app:layout_constraintLeft_toRightOf="@+id/editText"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</android.support.constraint.ConstraintLayout>
按照以下步骤解决问题。
- 断开所有连接到系统的设备,并关闭系统上的所有模拟器运行。
- 从设置中关闭 Instant 运行 功能。
- 执行干净的构建。
- 从设置中打开即时 运行 功能。
- 执行干净的构建。
- 连接您的 device/start 模拟器并确保它在线。
- 运行 通过选择 device/emulator 项目。
注:
1) 你不应该在系统上有不同的 Android Debug Bridge(adb) 运行 实例。
2) 如果使用 Genymotion,请确保使用 Genymotion 设置中提到的自定义 sdk 路径,您在 Android Studio 的设置中提到过。
这些步骤可能会解决您的问题,但也可能是 android 版本的问题。
可能是 Android 工作室版本 2.3
和 gradle 插件版本 2.3.0
与即时 运行 的 Xiaomi
设备的兼容性上。
adb multiple-install
拆分的 apks return 错误。
您可以关闭即时 运行,或者在 Settings
-> Developer options
中,如果您还需要即时 运行,请关闭 Turn on MIUI optimization
。
对于 Redmi 和 Mi 设备关闭 MIUI 优化并重新启动您的 phone。
设置 > 其他设置 > 开发者选项 > MIUI 优化
关闭 Android Studio 中的 Instant 运行。按照以下步骤操作:
File >> Settings >> Build, Execution, Deployment.
点击Instant 运行并取消勾选“Enable Instant 运行 hot swap code/resource部署更改".
单击“应用”和“确定”。
再次尝试 运行 该应用程序。现在应该安装该应用程序。您可以随时重新启用 Instant 运行。
编辑(Android Studio 3.0)
禁用即时 运行 (Android Document)
禁用即时 运行:
- 打开设置或首选项对话框。 (对于 Mac、Android Studio -> 首选项)
- 导航至 构建、执行、部署 > 即时 运行.
- 取消选中 启用即时 运行.
旁边的复选框
我现在遇到这个问题,我已经把apk卸载了,现在用Android Studio 3.0想运行 apk到小米MIX 2(Android 7.1 .1, API 25), 但失败了。
$ adb shell pm install -t -r "/data/local/tmp/com.package"
Failure [INSTALL_FAILED_USER_RESTRICTED: Install canceled by user]
并且 Android Studio 告诉我 "It is possible that this issue is resolved by uninstalling an existing version of the apk if it is present, and then re-installing." 但我已经卸载了这个 apk。
然后我点击了"OK"按钮,但是也失败了。
$ adb shell pm uninstall com.package
Unknown failure (at android.os.Binder.execTransact(Binder.java:565))
Error while Installing APK
最后我找到了解决这个问题的方法,我没有开机"Verify apps over USB",因为现在这个设备只有你登录小米账户才能开机,而且这是一个没有的新设备已登录。
第一步:进入“设置”→在系统中找到“开发者选项”,点击
第 2 步:在调试部分打开“通过 USB 验证应用程序”。
第 3 步:在 Android Studio 中再次尝试“运行 应用程序”!
对我来说,我刚刚为应用程序做了一个 clean 然后一切正常。
可能是您的设备存储空间已满。如果您在物理设备上进行测试。
但是,如果您在模拟器中进行测试,那么还要检查存储 space 是否可用。否则,你必须 turn-off Instant 运行.
我在新设备上安装应用程序时也遇到了同样的问题。当 os 不允许应用程序安装时,通常会发生此错误。
这可能是因为您可能无权从任何来源在您的 phone 上安装该应用程序。
所以请尝试在开发人员选项中检查 allow install apps via usb
。
如果这不起作用,请尝试撤销所有 usb debugging authorizations
,然后尝试安装并在询问时提供权限。
如果这也不能解决问题,请尝试禁用即时 运行,如上述答案之一所述。
我遇到了同样的问题,但我的问题是设备上缺少 space。
试试这个
在您的设备上转到设置 -> 设备维护 -> 立即优化
完成后,重试。
在尝试上述所有建议之前,检查设备 中是否有足够的可用内存space。这也会导致这个问题。
Error: android.os.ParcelableException: java.io.IOException: Requested internal only, but not enough space
编码愉快:)
在 Android Studio 中关闭 Instant 运行。
按照以下步骤操作:
旧版本 Android Studio (Version < Android Studio 3.0
)
文件 >> 设置 >> 构建、执行、部署。
单击 Instant Run
并取消选中所有 Enable Instant Run to hot swap code/resource changes on deploy
。
点击应用和确定。
再次尝试 运行 该应用程序。现在应该安装该应用程序。您可以随时重新启用 Instant Run
。
对于新的 (Android Studio 3.0
) 禁用即时 运行(默认)
禁用即时 运行:
打开Settings
或Preferences dialog
。 (对于 Mac、Android Studio -> 首选项)
导航到 Build, Execution, Deployment > Instant Run
。
取消选中“启用即时”旁边的框 运行。
清理项目并再次尝试 运行 应用程序。它现在应该 install
应用程序。您可以随时重新 enable Instant Run
。
我曾经清理项目并解决了这个问题。
构建 -> 清理项目。
断开 divice 与系统的连接,然后在 Android studio 转到文件 ->使缓存无效and/Restart。
它有效....
简单直接的答案...
取消选中 Instant 运行 如下...
步骤:文件>>设置>>构建、执行、部署>>取消选中启用即时 运行 热插拔 code/resource 部署更改(默认启用)。
第 2 步:应用并单击“确定”
第 3 步:运行 项目...
努力工作....@Ambilpura
您可以尝试删除设备上的所有应用程序。
我正在使用 Android 模拟器,我通过以下方式删除了我的应用程序;
设置 > 应用和通知 > select 你的应用 > 卸载.
您可以按照此步骤重新检查 Instant 运行:
- 文件 >> 设置 >> 构建、执行、部署。
- 点击 Instant 运行 并取消选中“Enable Instant 运行 hot swap code/resource
部署时发生变化”。
- 单击 "Apply" 和 "OK"。
但有时重新检查不起作用。
那个时候你需要暂时禁用你的 AntiVirus 和 Windows Defender 如果你 运行 你在 WIN PC 中的部署
按照以下步骤操作:
- 禁用您的防病毒软件或 Windows Defender 15/30 分钟
- 执行干净的构建。
- 重建项目
- 运行 模拟器或设备中的项目
注:
- \app\build\intermediates\split-apk\debug\slices\slice_5.apk 受到一些恶意软件的影响。
经常出现这个问题的原因有这两个。
- 当您的设备存储空间不足时
- 您的设备未与 android studio 正确连接
我通过禁用 selinux 设法修复了“com.android.ddmlib.InstallException:未知故障:cmd:调用服务包失败:交易失败”错误。
使用JuiceSSH或Temux访问本地设备的shell,然后运行:
setenforce 0
无需关闭 MIUI 优化
我正在慢慢地尝试在 Android Studio
中完成一些简单的任务。以下应用程序安装在模拟器上没有任何错误。但是当我尝试在真机Redmi 3S上安装时出现了这个错误:
Unknown failure (Failure - not installed for 0)
Error while Installing APKs
我在这里遇到了类似的问题,但在这些情况下,错误是由于未启用调试或未接受应用程序安装引起的。但是,我允许调试,并且我还尝试在 Studio 中安装 一些其他应用程序 ,它 运行良好 。
所以问题可能是,代码有什么问题。
MainActivity.java
package tlacitko.button;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void sendMessage(View view) {
new Thread(new Runnable() {
public void run() {
runOnUiThread(new Runnable() {
@Override
public void run() {
try{
URL url = new URL("http://147.32.186.51:8080");
// HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
InputStream is = url.openStream();
BufferedReader br = new BufferedReader(new
InputStreamReader(is));
String s = "";
}catch(MalformedURLException ex){
}catch(IOException e){
}
}
});
}
}).start();
}
}
和 xml 代码:
activity_main.xml
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Try to connect the server."
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="16dp"
android:layout_marginRight="7dp"
android:layout_marginTop="16dp"
android:onClick="sendMessage"
android:text="Conncect"
app:layout_constraintLeft_toRightOf="@+id/editText"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</android.support.constraint.ConstraintLayout>
按照以下步骤解决问题。
- 断开所有连接到系统的设备,并关闭系统上的所有模拟器运行。
- 从设置中关闭 Instant 运行 功能。
- 执行干净的构建。
- 从设置中打开即时 运行 功能。
- 执行干净的构建。
- 连接您的 device/start 模拟器并确保它在线。
- 运行 通过选择 device/emulator 项目。
注:
1) 你不应该在系统上有不同的 Android Debug Bridge(adb) 运行 实例。
2) 如果使用 Genymotion,请确保使用 Genymotion 设置中提到的自定义 sdk 路径,您在 Android Studio 的设置中提到过。
这些步骤可能会解决您的问题,但也可能是 android 版本的问题。
可能是 Android 工作室版本 2.3
和 gradle 插件版本 2.3.0
与即时 运行 的 Xiaomi
设备的兼容性上。
adb multiple-install
拆分的 apks return 错误。
您可以关闭即时 运行,或者在 Settings
-> Developer options
中,如果您还需要即时 运行,请关闭 Turn on MIUI optimization
。
对于 Redmi 和 Mi 设备关闭 MIUI 优化并重新启动您的 phone。
设置 > 其他设置 > 开发者选项 > MIUI 优化
关闭 Android Studio 中的 Instant 运行。按照以下步骤操作:
File >> Settings >> Build, Execution, Deployment.
点击Instant 运行并取消勾选“Enable Instant 运行 hot swap code/resource部署更改".
单击“应用”和“确定”。
再次尝试 运行 该应用程序。现在应该安装该应用程序。您可以随时重新启用 Instant 运行。
编辑(Android Studio 3.0)
禁用即时 运行 (Android Document)
禁用即时 运行:
- 打开设置或首选项对话框。 (对于 Mac、Android Studio -> 首选项)
- 导航至 构建、执行、部署 > 即时 运行.
- 取消选中 启用即时 运行. 旁边的复选框
我现在遇到这个问题,我已经把apk卸载了,现在用Android Studio 3.0想运行 apk到小米MIX 2(Android 7.1 .1, API 25), 但失败了。
$ adb shell pm install -t -r "/data/local/tmp/com.package"
Failure [INSTALL_FAILED_USER_RESTRICTED: Install canceled by user]
并且 Android Studio 告诉我 "It is possible that this issue is resolved by uninstalling an existing version of the apk if it is present, and then re-installing." 但我已经卸载了这个 apk。
然后我点击了"OK"按钮,但是也失败了。
$ adb shell pm uninstall com.package
Unknown failure (at android.os.Binder.execTransact(Binder.java:565))
Error while Installing APK
最后我找到了解决这个问题的方法,我没有开机"Verify apps over USB",因为现在这个设备只有你登录小米账户才能开机,而且这是一个没有的新设备已登录。
第一步:进入“设置”→在系统中找到“开发者选项”,点击
第 2 步:在调试部分打开“通过 USB 验证应用程序”。
第 3 步:在 Android Studio 中再次尝试“运行 应用程序”!
对我来说,我刚刚为应用程序做了一个 clean 然后一切正常。
可能是您的设备存储空间已满。如果您在物理设备上进行测试。 但是,如果您在模拟器中进行测试,那么还要检查存储 space 是否可用。否则,你必须 turn-off Instant 运行.
我在新设备上安装应用程序时也遇到了同样的问题。当 os 不允许应用程序安装时,通常会发生此错误。 这可能是因为您可能无权从任何来源在您的 phone 上安装该应用程序。
所以请尝试在开发人员选项中检查 allow install apps via usb
。
如果这不起作用,请尝试撤销所有 usb debugging authorizations
,然后尝试安装并在询问时提供权限。
如果这也不能解决问题,请尝试禁用即时 运行,如上述答案之一所述。
我遇到了同样的问题,但我的问题是设备上缺少 space。
试试这个 在您的设备上转到设置 -> 设备维护 -> 立即优化
完成后,重试。
在尝试上述所有建议之前,检查设备 中是否有足够的可用内存space。这也会导致这个问题。
Error: android.os.ParcelableException: java.io.IOException: Requested internal only, but not enough space
编码愉快:)
在 Android Studio 中关闭 Instant 运行。 按照以下步骤操作:
旧版本 Android Studio (
Version < Android Studio 3.0
) 文件 >> 设置 >> 构建、执行、部署。单击
Instant Run
并取消选中所有Enable Instant Run to hot swap code/resource changes on deploy
。点击应用和确定。
再次尝试 运行 该应用程序。现在应该安装该应用程序。您可以随时重新启用
Instant Run
。对于新的 (
Android Studio 3.0
) 禁用即时 运行(默认)
禁用即时 运行:
打开
Settings
或Preferences dialog
。 (对于 Mac、Android Studio -> 首选项)导航到
Build, Execution, Deployment > Instant Run
。取消选中“启用即时”旁边的框 运行。
清理项目并再次尝试 运行 应用程序。它现在应该
install
应用程序。您可以随时重新enable Instant Run
。
我曾经清理项目并解决了这个问题。
构建 -> 清理项目。
断开 divice 与系统的连接,然后在 Android studio 转到文件 ->使缓存无效and/Restart。 它有效....
简单直接的答案...
取消选中 Instant 运行 如下...
步骤:文件>>设置>>构建、执行、部署>>取消选中启用即时 运行 热插拔 code/resource 部署更改(默认启用)。
第 2 步:应用并单击“确定”
第 3 步:运行 项目...
努力工作....@Ambilpura
您可以尝试删除设备上的所有应用程序。
我正在使用 Android 模拟器,我通过以下方式删除了我的应用程序; 设置 > 应用和通知 > select 你的应用 > 卸载.
您可以按照此步骤重新检查 Instant 运行:
- 文件 >> 设置 >> 构建、执行、部署。
- 点击 Instant 运行 并取消选中“Enable Instant 运行 hot swap code/resource 部署时发生变化”。
- 单击 "Apply" 和 "OK"。
但有时重新检查不起作用。
那个时候你需要暂时禁用你的 AntiVirus 和 Windows Defender 如果你 运行 你在 WIN PC 中的部署
按照以下步骤操作:
- 禁用您的防病毒软件或 Windows Defender 15/30 分钟
- 执行干净的构建。
- 重建项目
- 运行 模拟器或设备中的项目
注:
- \app\build\intermediates\split-apk\debug\slices\slice_5.apk 受到一些恶意软件的影响。
经常出现这个问题的原因有这两个。
- 当您的设备存储空间不足时
- 您的设备未与 android studio 正确连接
我通过禁用 selinux 设法修复了“com.android.ddmlib.InstallException:未知故障:cmd:调用服务包失败:交易失败”错误。
使用JuiceSSH或Temux访问本地设备的shell,然后运行:
setenforce 0
无需关闭 MIUI 优化