这是我的项目:https://github.com/kenpeter/my_hak_news,是的直接副本https://github.com/grigio/HAgnostic-News.
Git克隆https://github.com/kenpeter/my_hak_news,然后运行react-native run-android
得到这个错误:
* What went wrong:
Execution failed for task ':app:installDebug'.
> com.android.builder.testing.api.DeviceException: com.android.ddmlib.InstallException: Failed to finalize session : INSTALL_FAILED_UPDATE_INCOMPATIBLE: Package com.hagnosticnews signatures do not match the previously installed version; ignoring!
相关问题:https://github.com/grigio/HAgnostic-News/issues/1,我采取了各种方法,但无法解决这个问题。
我在项目中也遇到了这个问题。
这帮助了我,所以希望能帮助其他人:
adb uninstall "com.domain.yourapp"
解决方案就在这里。
您需要卸载它,因为您使用的签名与原始签名不同。如果它不工作,可能是因为它仍然是为设备上的另一个用户安装的。若要完全卸载,请转到"设置"->应用程序->灵知新闻->选项(右上角的三个点)->卸载所有用户(包括安全存储)
当您在移动/模拟手机上安装了不同版本的应用程序时,就会发生这种情况。
只需卸载现有应用程序即可解决问题
如果您安装的应用程序版本不是使用相同的密钥库/签名证书构建的,那么它将具有不同的签名。默认情况下,除非你根据谷歌文档指定了应该如何签名,否则每台构建机器都会有一个不同的调试证书。无论你在哪台计算机上构建应用程序,都可以用来确保你的应用程序将使用相同的调试密钥来构建
为了继续安装,您必须卸载现有版本,然后重试。
这种情况主要发生在手机安装了谷歌Play商店的应用程序版本时。您可以使用与生产版本相同的密钥库/证书来构建代码,也可以从手机上卸载它,然后使用调试密钥库/认证来构建它
如果您试图在Emulator中安装它,但另一部手机通过USB连接到计算机,请断开USB电缆或禁用物理设备中的USB调试。(我自己浪费了30分钟。)
com.android.builder.testing.api.DeviceException:com.android.ddmlib.InstallException:未能完成会话:INSTALL_Failed_UPDATE_INCOMPATIBLE:Package[MY REACT NATIVE APP NAME HERE]签名与以前安装的版本不匹配;忽略!
我在尝试使用以下命令在连接的设备上安装React Native Android应用程序时出错:
react-native run-android --variant=release
我的电脑上还运行着一个模拟器。
一旦我退出模拟器,运行此命令就成功了。
今天,我在三星设备上遇到了同样的问题。在我的特殊情况下,手机上显示的应用程序是NOT,但它是INSTALLED的,所以我无法卸载/删除。因此,我不得不使用终端卸载该应用程序:$ adb uninstall "com.domain.yourapp"
我的项目树如下(局部视图):
└── com
└── gluonapplication
├── DrawerManager.java
├── StartApplication.java
└── views
├── PrimaryPresenter.java
├── PrimaryView.java
├── SecondaryPresenter.java
└── SecondaryView.java
所以对我来说,命令是:$ adb uninstall com.gluonapplication
完成后,我通过终端安装了应用程序:
$ cd /path/to/apk/
$ adb install -t myAwesomeApp.apk # -t means test install
这对我来说是有效的。我希望这个答案对我有帮助。
如果你想更新应用程序并保留数据(共享pref,手机上的SQL),你可能会收到这个错误,但你不想卸载它。
请确保拥有与以前的应用程序项目匹配的密钥库。
在android中>应用程序>build.gradle,您必须像这样指定signingConfig:
android {
signingConfigs {
release {
storeFile file("../path/file.keystore")
storePassword "password"
keyAlias "keyAlias"
keyPassword "keyPassword"
}
}
}
您可以自定义用于调试、发布的signingConfigs。。。
它与在本地开发的应用程序配合使用,然后更新为Flutter
我在尝试安装系统应用程序时遇到了这个错误,然后在尝试卸载时遇到了这个错误:
% adb uninstall com.domain.systemapp
Failure [DELETE_FAILED_INTERNAL_ERROR]
这个命令完成了任务:
% adb uninstall --user 0 com.domain.systemapp
Success
当我的模拟器/手机上的以前版本使用不同的凭据上传时,我发生了这个错误。我要做的就是运行:
adb uninstall com.exampleappname
一旦我做到了,我就可以重新运行构建并生成APK。
我得到了同样的错误。我在虚拟设备上卸载了该应用程序,并重新运行命令:"react native run android"。
要避免像前面的答案中建议的那样在物理设备中卸载应用程序,请增加;版本代码";在/android文件夹下的build.gradle文件中;)
我也有同样的问题,它在AVD中运行得很好,但在我的手机中不好。我在手机上卸载了应用程序,然后它正常工作。
在我的情况下,问题是我在设备上安装了一个包名为com.example.package的应用程序。我创建了另一个具有相同程序包名称的应用程序,并试图将其安装在我的设备上。这就是造成问题的原因。因此,只需在你的设备上检查是否已经存在另一个具有相同包名的应用程序。
直接从设备上卸载应用程序似乎仍保留一些缓存。我发现使用adb uninstall
将彻底清理应用程序。
- 从错误消息中获取程序包名称:
[INSTALL_FAILED_UPDATE_INCOMPATIBLE: Package com.xxx.xxx signatures do not match previously
- 运行
adb uninstall [PACKAGE_NAME such as com.xxx.xxx]
您需要卸载它,因为您使用的签名与原始签名不同。如果它不工作,可能是因为它仍然是为设备上的另一个用户安装的。要完全卸载,请转到"设置"->"应用程序"->"(特定应用程序)"->"选项"(右上角的三个点)->"为所有用户卸载"。
我也遇到了这个问题,时间已经安装了离子应用程序(相同的包名)从我的手机上删除,之后工作完美。
我在三星设备上遇到了这个问题,卸载该应用程序会收到同样的消息。问题是该应用程序也安装在手机的"安全文件夹"区域。如果这是你的情况,值得检查一下。
您需要使用cmd adb卸载packageName 完全卸载LG设备
在React Native项目中,当我重命名应用程序的捆绑包ID时,发生了这种情况,它与我以前使用过的另一个捆绑包ID发生了冲突。我通过重新安装修复了它:
-
在模拟器的主屏幕上找到应用程序,然后长按其应用程序图标,然后按
App info
,然后选择"UNINSTALL"。 -
执行
react-native run android
。
这是由于以前版本的应用程序可用,该应用程序未安装在设备上,但其数据存在于设备内存中。因此,它无法在设备上升级此卸载的应用程序数据
试试这个:
转到设备设置===>应用程序(所有应用程序)===>搜索您的应用或搜索">客户端"===>在程序信息屏幕中,按右上角的三点选项===>选择">Uninstall for All Users"===>出现一个提示,选择">确定
每次出现这种错误时,它都对我有效
如果模拟器/设备中已经安装了应用程序,请删除它,然后重新构建。希望你不会遇到这个问题。
在我的案例中,应用程序甚至没有安装在手机中,并给出了错误。所以我遵循了以下步骤1:安装以前版本的应用程序2:现在卸载它3:安装新版本的应用
我从模拟器中删除了我的项目,并从ProjectNameappbuildoutputsapkgoogledebug
中删除了文件
我的所有同事都是对的,但在其他情况下,您出现此错误的原因之一是因为您不是Generate Signed Bundle/APK
而是Build Bundle(s)/APK
或直接将其安装在设备上。为了避免将来出现这种错误,请从android studio的工具栏转到Build --> Generate Signed Bundle/APK
,并用这种方法创建apk文件。
在我的情况下,卸载连接设备中安装的应用程序解决了我的问题
转到android studio->AVD管理器->选择您的AVD并擦除用户数据
无需重新安装整个AVD。
感谢其他人在这里的回答组合-Qazi Fahim Farhan&;特别是王牌
我的解决方案如下:
对于那些使用android设备的人-如果你卸载了以前的版本,它仍然会给你错误,那么这对我来说是有效的:
- adb-d卸载"com.your.applicationName">
-d";针对您连接的设备。为了让事情完全运转起来,我遇到了很多问题。
如果有人有其他与这个特定问题无关的问题——这是我在下面的旅程,以防它能帮助其他人进入这个兔子洞:
- 将我的android USB选项设置为PTP,而不是MTP
- windows上的java版本/系统路径混乱
- 设置grandle.properties
org.gradle.java.home=C:\Program Files\Java\YOUR-JDK-FOLDER-NAME
-mine为jdk-11.0.5- 清理渐变缓存
gradlew clean
- 清理react本机缓存
npx react-native start --reset-cache
- 然后最后删除旧的应用程序,并使用
adb -d uninstall "com.your.applicationName"
从您的设备中删除证书- AVG安全软件正在抱怨一个文件-批准该文件
一次只能打开一个模拟器或设备。确保没有多个模拟器在运行。