Android Studio无法在设备上安装最新应用程序

46

我正在跟随一些有关在Android Studio中构建应用程序的教程,但由于某种原因,在我点击“运行”时它没有启动/安装我的应用程序的最新版本。我必须手动在手机上卸载应用程序,然后在Android Studio中进行更改后再次点击运行才能更新应用程序。有什么想法吗?

这是控制台输出:

Waiting for device.
Target device: htc-htc_one_m8
Uploading file
    local path: /home/brandon/AndroidStudioProjects/JustJava/app/build/outputs/apk/app-debug.apk
    remote path: /data/local/tmp/com.example.android.justjava
No apk changes detected. Skipping file upload, force stopping package instead.
DEVICE SHELL COMMAND: am force-stop com.example.android.justjava
Launching application: com.example.android.justjava/com.example.android.justjava.MainActivity.
DEVICE SHELL COMMAND: am start -D -n "com.example.android.justjava/com.example.android.justjava.MainActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER
Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.example.android.justjava/.MainActivity }

Waiting for process: com.example.android.justjava
Connected to the target VM, address: 'localhost:8638', transport: 'socket'
Disconnected from the target VM, address: 'localhost:8638', transport: 'socket'

在apk部署过程中,控制台会显示什么? - stkent
@stkent 已添加控制台输出。这是您想要的吗? - brandon
1
尝试卸载旧版本或更改版本号进行测试。我认为这是一个错误。 - Oğuzhan Döngül
是的!看起来没有检测到 apk 的变化("未检测到任何 apk 变化"),因此应用程序只是退出并重新打开。在连续的构建过程中,您更改了什么 - 代码、构建配置、资源? - stkent
是的,我也注意到那行了。我正在更改代码(xml和Java):创建方法,更改显示方式等等。这些东西应该会影响apk的差异。@oguzhand 看起来像是个bug...有时候应用程序会接收到更改,但有时候则不会。挺有趣/恼人的哈:P - brandon
显示剩余5条评论
8个回答

89
没有检测到APK更改。跳过文件上传,强制停止包。

Android Studio认为没有更改,因此不会安装新的APK。解决方法是在“运行>编辑配置”中禁用“如果APK未更改,则跳过安装”选项。

Screenshot on Android Studio 1.4


我正在使用 Android Studio 1.4
源码: https://code.google.com/p/android/issues/detail?id=160901


谢谢。这节省了我很多时间! - iTurki
5
真是一个恶心的bug..在我禁用了无效的选项之前,我浪费了足够长的时间。(这个选项很傻,因为它没有按照预期工作..) - ashishsony
19
安装失败。即使未勾选“跳过安装”,仍无法安装最新版本。 - Questioner
2
我不得不这样做,并且在Android Studio中使缓存无效(文件>使缓存无效/重新启动)。 - ohad serfaty

36

Android Studio认为没有更改,因此不会安装新APK。一种解决方法是在运行>编辑配置> Android应用程序>应用程序>其他 中禁用“如果APK未更改则跳过安装”选项,然后取消选中“如果APK未更改,则跳过安装”。

另一个类似的问题是即时运行,您可以通过以下方式管理它:只需转到“文件->设置->构建、执行、部署->即时运行”,然后将其禁用。使用此方法,Android Studio每次都从头构建,但这比不构建更好。


2
在Android Studio 3.5.2中,Instant&Run不再存在。 - Diego Favero

4

实际上这是一个bug,您可以在Android开源项目 - 问题跟踪器中找到更多信息。

目前最好的解决方法是在编辑配置中禁用即时运行选项,并将-r标志添加到安装标志中。


-r 标志是什么意思? - AlexioVay
-R:重复启动活动<计数>次。在每次重复之前,顶部活动将被结束。您可以在developer.android.com/studio/command-line/shell.html找到其他开关。 - Rahul

4

在“运行”>“编辑配置”>“Android应用程序”>“应用程序”>“其他”中选择选项。然后取消选中“如果APK未更改,则跳过安装”的复选框。

然后,在“构建”>“清理项目”和“重建项目”中选择选项,并重新安装设备中的APK。

对我而言,这个方法很有效,希望能对其他人有所帮助。


对我来说有效。我不知道最初引起问题的原因是什么。 - Ahmad Shahwaiz
清理项目对我来说很有好处。只是在认为我的代码有问题的时候,我浪费了4个小时。对AS不是很满意。 - eric

1
另一个应用无法安装/启动的原因是您设置了“工作配置文件”。
该应用可能仍安装在您的“工作”配置文件中,因此在通过Android Studio启动时不会重新安装或卸载。但是,“主”配置文件部分已被“禁用”,因此无法启动该活动。
解决方案:手动卸载工作应用程序,然后从Android Studio重新部署。

0
有时候当我遇到这种情况时,我会在设备上关闭应用程序,然后重新运行它。加入一个日志语句以澄清你正在使用正确的构建版本,只要是你知道你为此构建所做的更改即可。

0

在手机上运行

按照以下步骤设置您的设备:

使用 USB 电缆将您的设备连接到开发计算机。如果您正在 Windows 上进行开发,则可能需要为您的设备安装适当的 USB 驱动程序。有关安装驱动程序的帮助,请参阅 OEM USB 驱动程序文档。 通过转到“设置”>“开发人员选项”启用您的设备的 USB 调试。 注意:在 Android 4.2 及更高版本中,“开发人员选项”默认是隐藏的。要使其可用,请转到“设置”>“关于手机”,然后点击“版本号”七次。返回前一个屏幕以查找“开发人员选项”。

按照以下步骤从 Android Studio 运行应用程序:

在 Android Studio 中,单击项目窗口中的应用程序模块,然后选择“运行”>“运行”(或单击工具栏中的“运行”)。 在“选择部署目标”窗口中,选择您的设备,然后单击“确定”。

请参考链接


0

我尝试了以上所有解决方案,但对我没有用。 我通过在新窗口中打开一个新项目或其他现有项目(在当前项目中)来解决问题,然后关闭以前的项目。 我再次打开以前的项目并点击运行,这个方法对我非常有效。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接