Android:安装APK时出错

时间:2017-03-14 09:18:01

标签: java android android-studio failed-installation

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

18 个答案:

答案 0 :(得分:104)

请按照以下步骤解决此问题。

  1. 断开连接到系统的所有设备,并关闭在System上运行的所有仿真器。
  2. 从设置中关闭“即时运行”功能。
  3. 执行干净的构建。
  4. 从设置启用“即时运行”功能。
  5. 执行干净的构建。
  6. 连接您的设备/启动您的模拟器并确保其在线。
  7. 通过选择设备/模拟器运行项目。
  8. 注意:

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

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

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

答案 1 :(得分:49)

在Android Studio中关闭即时游戏。请按照以下步骤操作:

  1.   

    档案&gt;&gt;设置&gt;&gt;构建,执行,部署。

  2. 点击即时运行并取消确认&#34; 启用即时运行以在部署时热交换代码/资源更改&#34;。

  3. 点击&#34; 应用&#34;和&#34; 确定&#34;。

  4. 再次尝试运行该应用程序。它应该现在安装应用程序。您可以随时重新启用“即时运行”。

    编辑(Android Studio 3.0)

    禁用即时运行(Android Document

    禁用即时运行:

    1. 打开设置偏好设置对话框。 (对于Mac, Android Studio - &gt; 偏好设置
    2. 导航至构建,执行,部署&gt; 即时运行
    3. 取消选中启用即时运行旁边的复选框。

答案 2 :(得分:8)

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

设置&gt;其他设置&gt;开发人员选项&gt; MIUI优化

Check Answer here

答案 3 :(得分:8)

对我而言,我只是为应用程序做了一个干净,然后一切正常。

答案 4 :(得分:4)

我现在面临这个问题,我已经卸载了apk,现在我使用Android Studio 3.0想要运行apk到小米MIX 2(Android 7.1.1,API 25),但它失败了。 / p>

$ adb shell pm install -t -r "/data/local/tmp/com.package"
Failure [INSTALL_FAILED_USER_RESTRICTED: Install canceled by user]

Android Studio告诉我&#34;有可能通过卸载现有版本的apk(如果存在)然后重新安装来解决此问题。&#34;但是我已经卸载了这个apk。

Android Studio popup info

然后点击&#34; OK&#34;按钮,但它也失败了。

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

最后我找到了如何解决这个问题,我没有打开&#34;通过USB验证应用程序&#34;,因为现在这个设备无法打开它,直到您登录xiaomi帐户,这是尚未登录的新设备。

步骤1:转到“设置”→在系统中找到“开发人员选项”,然后单击。

步骤2:在“部署”部分中“开启通过USB验证应用”

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

答案 5 :(得分:3)

可能与Android工作室版Xiaomi的{​​{1}}设备兼容,以及即时运行时的gradle插件版本2.3

2.3.0分裂的apks返回错误。

您可以关闭即时游戏,或在adb multiple-install - &gt; Settings,如果您想要即时运行,请关闭Developer options

答案 6 :(得分:3)

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

  

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

快乐编码:)

答案 7 :(得分:1)

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

答案 8 :(得分:1)

我曾经清理过项目并解决了这个问题。

Build-> Clean Project。

答案 9 :(得分:1)

您可以按照此步骤重新检查即时运行

  1. 文件>>设置>>构建,执行,部署。
  2. 单击“即时运行”并取消选中“启用即时运行以热插拔代码/资源 部署变更”。
  3. 单击“应用”并单击“确定”。

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

那个时候,如果您在WIN PC上运行部署,则需要暂时​​禁用防病毒和Windows Defender

请按照以下步骤操作:

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

注意:

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

答案 10 :(得分:0)

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

因此,请尝试检查开发人员选项中的allow install apps via usb。 如果这样做不起作用,请尝试撤消所有usb debugging authorizations,然后尝试安装并在询问时提供许可。

如果仍然不能解决问题,请尝试禁用即时运行,如上面的答案之一所述。

答案 11 :(得分:0)

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

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

答案 12 :(得分:0)

我已经通过禁用 selinux 设法修复了“com.android.ddmlib.InstallException:未知故障:cmd:调用服务包失败:事务失败”错误。

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

setenforce 0

无需关闭 MIUI 优化

答案 13 :(得分:-1)

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

尝试一下 在您的设备上,依次转到设置->设备维护->立即优化

完成后,再试一次。

答案 14 :(得分:-1)

关闭Android Studio中的即时运行。 请按照以下步骤操作:

  • 适用于旧版本的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)禁用即时运行(默认情况下)

要禁用即时运行:

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

  • 导航到Build, Execution, Deployment > Instant Run

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

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

答案 15 :(得分:-1)

断开与系统和 Android Studio 中的分区的连接,请转到文件-> 使缓存无效和/重新启动。 可以....

答案 16 :(得分:-1)

简单直接的答案...

取消选中“立即运行”,如下所示...

步骤:文件>>设置>>构建,执行,部署>>取消选中“启用即时运行”以在部署时热插拔代码/资源更改(默认启用)。 enter image description here

第2步:应用并单击确定 enter image description here

第3步:运行项目...

肯定要工作... @@ Ambilpura

答案 17 :(得分:-1)

如果可以删除设备上的所有应用程序。我正在使用Android模拟器,通过删除了我的应用;

设置>应用和通知>选择您的应用>卸载