android - ADB 安装 apk 但不显示在包下
问题描述
我正在尝试卸载我的应用程序的旧版本,然后通过 ADB 在 Lollipop Android 设备上重新安装新版本。这些是我目前的步骤:
adb uninstall com.company.mypackagename
adb install app-release.apk
adb shell pm list packages
我的旧应用程序的原始卸载成功,该应用程序从 Android 5.5 设备上消失了。
安装升级后的应用程序的新尝试返回:
adb install app-release.apk
Performing Push Install
app-release.apk: 1 file pushed, 0 skipped. 10.7 MB/s (822124 bytes in 0.073s)
pkg: /data/local/tmp/app-release.apk
Success
但是当我运行包列表时,我的新 APK 包不存在。
adb shell pm list packages
当我尝试运行它时:
adb shell am start -n "com.company.mypackagename/com.company.mypackagename.MainActivity"
我得到:
Error: Activity class {com.company.mypackagename/com.company.mypackagename.MainActivity} does not exist.
所以很明显它没有正确安装,因为它没有显示在包中并且无法运行 - 即使它显示成功。解决此问题的最佳方法是什么?任何帮助表示赞赏!
解决方案
终于找到问题了!!!我在这里发帖是因为我花了太多时间试图弄清楚这一点,因为它没有给我任何错误消息。
我能够从部署团队获得原始 APK 的副本并分析他们的 AndroidManifest.xml,并看到原始 APK 包名称都是小写的:“com.company.mypackagename”但我正在构建的那个实际上是使用驼峰式“com.company.myPackageName”。当我尝试安装它时,ADB 应该给出类似于“应用程序 ID 不匹配”的错误,但它只是反复给我一个响应:“成功”。
希望这可以节省其他人一些时间!
推荐阅读
- python - 在 Django 中,如何创建可重用的接收器函数?
- angular - 如何在 Angular 中使用嵌套的休息资源?
- python - 如何创建新实体并使用它在我的测试数据中查找实体?如何使我的标记化工作?
- java - Java + Android Jetpack + Dagger 2 在 ViewModel 中注入
- macos - 对 macOS 系统库的符号化调用?
- javascript - 更新 mongo db 文档中另一个数组内的嵌套数组字段
- python - 通过 pod 访问 kubernetes python api
- node.js - Node.js Streams:有没有办法将 fs 写入流转换或包装成 Transform 流?
- excel - Excel - NotBlank 中的公式
- hyperledger-fabric - Hyperledger Fabric 网络中的多个组织具有相同的根 ca