【问题标题】:Android: Error while installing APKsAndroid:安装 APK 时出错
【发布时间】:2017-08-04 13:11:11
【问题描述】:

我正在慢慢尝试在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>

【问题讨论】:

  • 请检查是否存在同名应用程序,如果有请卸载重试。
  • 重建并运行
  • @ShantoGeorge 没有同名的应用。
  • 我没有看到上面的代码有任何明显错误,请确认您的应用程序 manifest.xml 文件不是导致应用程序无法安装的原因,确保所有最低版本都设置为您的设备,并且该设备允许安装未知的 apk 文件。
  • @diegeelvis_SA 已解决。谢谢你。允许的 xml 和未知 apk 没有任何问题。

标签: java android android-studio failed-installation


【解决方案1】:

我已经设法通过禁用 selinux 来修复“com.android.ddmlib.InstallException: Unknown failure: cmd: Failure calling service package: Failed transaction”错误。

使用 JuiceSSH 或 Temux 访问本地设备的 shell,然后运行:

setenforce 0

无需关闭 MIUI 优化

【讨论】:

    【解决方案2】:

    这个问题通常是由于这两个原因造成的。

    1. 当您的设备存储空间较少时
    2. 您的设备未与 android studio 正确连接

    【讨论】:

      【解决方案3】:

      您可以尝试删除设备上的所有应用程序。

      我正在使用 Android 模拟器,我通过以下方式删除了我的应用程序; 设置 > 应用和通知 > 选择您的应用 > 卸载

      【讨论】:

        【解决方案4】:

        您可以按照此步骤重新检查Instant Run

        1. 文件 >> 设置 >> 构建、执行、部署。
        2. 点击 Instant Run 并取消勾选“Enable Instant Run to hot swap code/resource 部署时的更改”。
        3. 点击“应用”和“确定”。

        但有时重新检查不起作用。

        如果您在 WIN PC 中运行部署,您需要暂时禁用您的防病毒软件和 Windows Defender

        按照以下步骤操作:

        1. 禁用您的防病毒软件或 Windows Defender 15/30 分钟
        2. 执行干净的构建。
        3. 重建项目
        4. 将项目运行到您的模拟器或设备中

        注意:

        • \app\build\intermediates\split-apk\debug\slices\slice_5.apk 受到一些恶意软件的影响。

        【讨论】:

          【解决方案5】:

          按照这些步骤来解决问题。

          1. 断开连接到系统的所有设备,并关闭系统上运行的所有模拟器。
          2. 从设置中关闭 Instant Run 功能。
          3. 执行干净的构建。
          4. 从设置中开启 Instant Run 功能。
          5. 执行干净的构建。
          6. 连接您的设备/启动您的模拟器并确保它在线。
          7. 通过选择设备/模拟器运行项目。

          注意:

          1) 您不应在系统上运行不同的 Android Debug Bridge(adb) 实例。

          2) 如果使用 Genymotion,请确保使用您在 Android Studio 设置中提到的 Genymotion 设置中提到的自定义 sdk 路径。

          这些步骤可能会解决您的问题,但也可能是 android 版本的问题。

          【讨论】:

          • 我正在使用 genymotion。其他应用程序工作正常。但只有应用程序没有安装。虚拟设备是 android 8.0。安装 apk 时出错
          • 清理构建和重建修复了安装 apk 失败的问题。谢谢!
          • 谢谢!现在按照这些步骤,我可以构建和使用即时运行功能。这就是问题所在,缓存。谢谢!
          • 在我的情况下,这是手机的记忆力差。我释放了空间,它起作用了。如果它对某人有用..
          • 在哪里可以找到“即时运行”功能/选项?
          【解决方案6】:

          简单直接的答案...

          取消选中 Instant Run 如下...

          步骤:文件>>设置>>构建,执行,部署>>取消选中启用即时运行以在部署时热交换代码/资源更改(默认启用)。

          第 2 步:应用并单击确定

          第 3 步:运行项目...

          确保工作......@Ambilpura

          【讨论】:

            【解决方案7】:

            断开设备与系统和Android Studio中的文件 ->使缓存无效和/重新启动。 它有效....

            【讨论】:

              【解决方案8】:

              我曾经清理过项目并修复了这个问题。

              构建 -> 清理项目。

              【讨论】:

                【解决方案9】:

                在 Android Studio 中关闭 Instant Run。 按照以下步骤操作:

                • 适用于旧版 Android Studio (Version &lt; Android Studio 3.0) 文件 >> 设置 >> 构建、执行、部署。

                • 点击Instant Run并取消勾选所有Enable Instant Run to hot swap code/resource changes on deploy

                • 点击应用确定

                • 再次尝试运行应用程序。它现在应该安装该应用程序。您可以随时重新启用Instant Run

                • 对于新用户 (Android Studio 3.0) 禁用即时运行(默认)

                禁用 Instant Run:

                • 打开SettingsPreferences dialog。 (对于 Mac,Android Studio -> 首选项)

                • 导航到Build, Execution, Deployment &gt; Instant Run

                • 取消选中启用即时运行旁边的框。

                • 清理项目并再次尝试运行应用程序。现在应该install 应用程序。您可以随时再次enable Instant Run

                【讨论】:

                • 尝试突出显示关键字并明确格式,这将有助于为其他人找到答案
                【解决方案10】:

                在尝试上述所有建议之前,检查设备中是否有足够的可用内存空间。这也会导致这个问题。

                错误:android.os.ParcelableException:java.io.IOException:仅在内部请求,但空间不足

                编码愉快:)

                【讨论】:

                  【解决方案11】:

                  我遇到了同样的问题,但我的问题是设备空间不足。

                  试试这个 在您的设备上转到设置 -> 设备维护 -> 立即优化

                  完成后,再试一次。

                  【讨论】:

                    【解决方案12】:

                    在 Android Studio 中关闭 Instant Run。请按照以下步骤操作:

                    1. 文件 >> 设置 >> 构建、执行、部署。

                    2. 点击Instant Run并取消勾选“Enable Instant Run to hot swap code/resource changes on deploy”。

                    3. 点击“应用”和“确定”。

                    再次尝试运行该应用程序。它现在应该安装该应用程序。您可以随时重新启用 Instant Run。

                    编辑(Android Studio 3.0)

                    禁用即时运行 (Android Document)

                    禁用即时运行:

                    1. 打开设置首选项对话框。 (对于 Mac,Android Studio -> 首选项
                    2. 导航到构建、执行、部署 > 即时运行
                    3. 取消选中启用即时运行旁边的复选框。

                    【讨论】:

                    • 这解决了我的问题,Android Studio 中的原始错误消息是Unknown failure (at android.os.Binder.execTransact(Binder.java:565)
                    • 我尝试了第一个和第二个答案,然后看到android studio显示我的模拟器设备内部大小不够,我调整大小并重新启动设备,现在它可以工作了。
                    【解决方案13】:

                    我在新设备上安装应用程序时也遇到了同样的问题。当操作系统不允许安装应用程序时,通常会发生此错误。 这可能是因为您可能无权在手机上安装任何来源的应用程序。

                    所以请尝试在开发者选项中检查allow install apps via usb。 如果这不起作用,请尝试撤销所有 usb debugging authorizations,然后尝试安装并在询问时提供权限。

                    如果这也不能解决问题,请尝试按照上述答案之一中的说明禁用即时运行。

                    【讨论】:

                      【解决方案14】:

                      可能是您的设备存储空间已满。如果您在物理设备上进行测试。 但是,如果您在模拟器中进行测试,那么还要检查那里的存储空间是否可用。否则,您必须关闭 Instant Run。

                      【讨论】:

                        【解决方案15】:

                        对我来说,我只是为应用程序做了一个 clean,然后一切正常。

                        【讨论】:

                        • 就我而言,我只是压缩了现有项目而不删除build 文件夹,然后将其复制到另一台笔记本电脑并在模拟器中执行它并发生了。我刚刚像这个答案一样执行了clean,现在一切正常。
                        【解决方案16】:

                        我现在遇到这个问题,我已经卸载了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 告诉我“有可能通过卸载现有版本的 apk(如果存在)然后重新安装来解决此问题。”但我已经卸载了这个 apk。

                        我点击“确定”按钮,但也失败了。

                        $ adb shell pm uninstall com.package
                        Unknown failure (at android.os.Binder.execTransact(Binder.java:565))
                        Error while Installing APK
                        

                        最后我找到解决这个问题的方法,我没有打开“通过USB验证应用程序”,因为现在这个设备在你登录小米帐户之前无法打开它,而且这是一个新设备,还没有已登录。

                        第一步:进入“设置”→在系统中找到“开发者选项”,点击。

                        第 2 步:在调试部分打开“通过 USB 验证应用程序”

                        第 3 步:再次尝试在 Android Studio 中“运行应用”!

                        【讨论】:

                          【解决方案17】:

                          对于 Redmi 和 Mi 设备,请关闭 MIUI 优化并重新启动您的手机。

                          设置>附加设置>开发者选项>MIUI优化

                          Check Answer here

                          【讨论】:

                            【解决方案18】:

                            这可能是与 Android studio 版本 2.3 和 gradle 插件版本 2.3.0Xiaomi 设备的兼容性,即时运行。

                            adb multiple-install拆分后的apk返回错误。

                            你可以关闭即时运行,或者在Settings -> Developer options,如果你也想即时运行,关闭Turn on MIUI optimization

                            【讨论】:

                              猜你喜欢
                              • 2017-02-25
                              • 2019-06-17
                              • 1970-01-01
                              • 1970-01-01
                              • 1970-01-01
                              • 2017-06-20
                              • 1970-01-01
                              • 2017-11-14
                              • 1970-01-01
                              相关资源
                              最近更新 更多