如何在不使用 Eclipse 的情况下在 Android 上安装/替换

Posted

技术标签:

【中文标题】如何在不使用 Eclipse 的情况下在 Android 上安装/替换【英文标题】:How to install/replace on Android without using Eclipse 【发布时间】:2011-02-01 06:38:05 【问题描述】:

朋友给我发了一个更高版本的 .apk 文件。我的设备上已经安装了早期版本。

当我尝试 adb install 文件时,我得到了这个:

$ adb install ../FlashLite.apk 
320 KB/s (18311 bytes in 0.055s)
    pkg: /data/local/tmp/FlashLite.apk
Failure [INSTALL_FAILED_ALREADY_EXISTS]

$ adb uninstall FlashLite.apk
Failure

$ adb uninstall /data/local/tmp/FlashLite.apk
Failure

如何从 cmd 行安装/替换?我没有源代码,所以我不能从 Eclipse 中完成。

【问题讨论】:

如果你有真正的问题,然后 adb shell 进入你的手机并手动删除 apk。之后,您应该能够像以前一样重新安装。 【参考方案1】:

卸载时必须指定活动的 java 路径。

adb uninstall com.haseman.myapp

我的主要活动在 src/com/haseman/myapp/LaunchActivity.java

此外,您可以使用替换安装

adb install -r myApplication.apk

但是,如果没有使用相同的密钥对手机上的 apk 和您要安装的 apk 进行签名,则替换构建通常会失败。如果您看到错误“INSTALL_PARSE_FAILED_INCONSISTENT_CERTIFICATES”,则需要先卸载该应用,然后再安装。

【讨论】:

是的..这在问题的上下文中更有意义【参考方案2】:

您必须使用adb uninstall [packagename],例如adb uninstall org.vimtips.supacount

这是清单中列出的软件包名称:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="org.vimtips.supacount"
    android:versionCode="6" android:versionName="0.1.5">

【讨论】:

这是一个比标记为正确的答案更有用的答案,因为在我的手机上,该应用程序根本没有出现在要删除的菜单中......所以我真的被卡住了。谢谢 Synic。 更不用说比点击所有这些菜单更容易了! 检查以确保您匹配包名称的大小写。通常它都较低,但如果大小写不匹配,它可能无法使用命令行卸载。【参考方案3】:

您需要提供 -r 键:

adb install -r myapp-release.apk

这已经讨论过了: Why does adb install <same-packagename-always-release> fail?

【讨论】:

假设应用程序是用相同的密钥签名的,我会把这个答案投票为接受 提示:也 -d 用于通过模拟器安装设备【参考方案4】:

在设置->应用程序->管理应用程序下从手机中删除旧版本,然后安装应该可以工作了。

【讨论】:

【参考方案5】:

在设置->应用程序->管理应用程序下从手机中删除旧版本 然后你可以通过命令行安装或者上传到网站直接下载到手机上

【讨论】:

我的问题是它从我的手机中消失了。我无法卸载它,也无法安装新版本。

以上是关于如何在不使用 Eclipse 的情况下在 Android 上安装/替换的主要内容,如果未能解决你的问题,请参考以下文章

如何在不启动模拟器的情况下在 Eclipse 中将 Android 项目编译为 .apk 文件?

是否可以在不做任何更改的情况下在 Android 手机中运行 JavaFX 桌面应用程序? [复制]

如何在不使用 AudioQueueRef 的情况下在 AudioQueue 中设置音量?

有没有办法在不发布的情况下在真实设备上测试应用程序?

如何在不使用 &nbsp 的情况下在行内元素之间添加空格 [重复]

如何在不使用 Segue 的情况下在单独的 UIViewController 中选择实例变量