gpt4 book ai didi

android - 如何测试仅在更新后出现的 "Application is not installed"问题

转载 作者:行者123 更新时间:2023-11-30 02:56:01 25 4
gpt4 key购买 nike

我几天前在 Google Play 中启动了一个应用程序,然后决定进行更新并将其也推出。我在我的设备上加载了原始版本(主屏幕上也有一个启动图标),当更新可用时,我也使用了它,并且在使用启动图标时我开始看到一条消息:

enter image description here

当我看到这条消息时,我将我的手机连接到电脑上并获取了正在发生的事情的日志:

I/InputDispatcher(  379): Delivering touch to current input target: action: 0x1
I/ActivityManager( 379): START {intent.toShortString} from pid 711
D/PowerManagerService( 379): acquireDVFSLockLocked : type : DVFS_MIN_LIMIT fre
quency : 1026000 uid : 1000 pid : 379 tag : ActivityManager
W/ActivityManager( 379): mDVFSLock.acquire()
W/ActivityManager( 379): Permission denied: checkComponentPermission() owningUi
d=10153
W/ActivityManager( 379): Permission Denial: starting Intent { act=android.inten
t.action.MAIN cat=[ xxx ] flg=0x10000000 pkg=com.gmail.apps.works.ren.tictactoe
cmp=xxxx bnds=[0,338][120,488] } from ProcessRecord{41cba100 711:com.sec.android
.app.twlauncher/10001} (pid=711, uid=10001) not exported from uid 10153
E/Launcher( 711): Launcher does not have the permission to launch Intent { act=
android.intent.action.MAIN cat=[ xxx ] flg=0x10000000 pkg=com.gmail.apps.works.r
en.tictactoe cmp=xxxx bnds=[0,338][120,488] }. Make sure to create a MAIN intent
-filter for the corresponding activity or use the exported attribute for this ac
tivity.

权限被拒绝?经过一番研究,我发现 this link解释我需要 receiver 直接在 Activity 下的 export 权限,但根据各种答案,我不清楚这将解决我的问题。

现在,如果我直接从我的计算机上运行/调试,就没有问题,主屏幕启动器和菜单启动器都按预期工作。此外,如果我卸载该应用程序并下载一个新副本,则不会出现任何问题。
唯一看到这个问题是在安装了以前的版本(和主屏幕启动器图标)后从 Google Play 下载更新时。

那么我该如何重现这种情况,以便在不将更多(可能)损坏的内容推送到 Google Play 商店的情况下测试不同的修复选项?

最佳答案

这就是我遇到的问题,使用 Eclipse 进行正常调试/测试在这里不起作用,因为它会卸载以前的(不同签名的)版本,据我所知,您无法从 Google Play 下载同一应用程序的不同旧版本即使我想尝试那条路线..所以这就是我设法解决它的方法:

备份,备份,备份!
我总是在推送之前保存我的 .apk 副本以及开发环境的快照,所以我有一些以前的副本。

我发现如果我手动卸载该应用程序,我现在可以通过以下方式安装我的旧版本之一:

$ mv <myapp>.apk.v1 <myapp>.apk
$ adb install <myapp>.apk

安装后,我制作了一个旧版本的主屏幕启动器。接下来我发现我可以使用 -r option from adb install通过安装同一 apk 的新版本来执行“更新”:

$ mv <myapp>.apk.v2 <myapp>.apk
$ adb install -r <myapp>.apk

在保留旧数据(包括旧主屏幕启动器图标)的同时重新安装了现有应用程序。

现在我可以重现我的问题了。最后一步是将各种修复应用到我的项目(在 Eclipse 中)构建它们并导出(创建一个签名的 .apk 就像我在 Google Play 上发布的一样)然后使用 adb install 安装“更新” - r

顺便说一下,添加:

android:exported="true"

我的应用程序的 Activity 对我有用。希望这对其他人有帮助!

关于android - 如何测试仅在更新后出现的 "Application is not installed"问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23250523/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com