簡體   English   中英

在設備上安裝簽名的APK(使用libgdx)時出錯

[英]Error on installing signed apk (using libgdx) on device

我知道我的設備是干凈的,apk的調試版本已卸載,但安裝發行版本時仍然出現錯誤INSTALL_FAILED_UPDATE_INCOMPATIBLE 請參閱以下獲得的錯誤消息:-

Information:Gradle tasks [installRelease]

:android:preBuild UP-TO-DATE:android:preReleaseBuild UP-TO-DATE:android:checkReleaseManifest:android:preDebugBuild UP-TO-DATE:core:compileJava UP-TO-DATE:core:processResources UP-TO-DATE: core:classs UP-TO-DATE:core:jar UP-TO-DATE:android:prepareComAndroidSupportAppcompatV72310Library UP-TO-DATE:android:prepareComAndroidSupportDesign2310Library UP-TO-DATE:android:prepareComAndroidAndroidSupportRecyclerviewV72310Library UP-Support-Par10Li: TO-DATE:android:prepareReleaseDependencies:android:compileReleaseAidl UP-TO-DATE:android:compileReleaseRenderscript UP-TO-DATE:android:generateReleaseBuildConfig UP-TO-DATE:android:generateReleaseAssets UP-TO-DATE:android:mergeReleaseAssets -DATE:android:generateReleaseResValues UP-TO-DATE:android:generateReleaseResources UP-TO-DATE:android:mergeReleaseResources UP-TO-DATE:android:processReleaseManifest UP-TO-DATE:android:processReleaseResources UP-TO-DATE:android: generateReleaseSourc es UP-TO-DATE:android:processReleaseJavaRes UP-TO-DATE:android:compileReleaseJavaWithJavac UP-TO-DATE:android:compileReleaseNdk UP-TO-DATE:android:compileReleaseSources UP-TO-DATE:android:preDexRelease UP-TO-DATE日期:android:dexRelease更新日期:android:validateReleaseSigning:android:packageRelease更新日期:android:zipalignRelease更新日期:android:assembleRelease更新日期:android:installRelease安裝APK'android- “ Nexus 4-5.1.1”上的release.apk”無法安裝C:\\ Users \\ Kevin \\ testgdx \\ android \\ build \\ outputs \\ apk \\ android-release.apk com.android.ddmlib.InstallException:無法完成會話:INSTALL_FAILED_UPDATE_INCOMPATIBLE:包com.testgdx.game.android簽名與以前安裝的版本不匹配; 無視! 位於com.android.builder.testing.ConnectedDevice.installPackages(ConnectedDevice.java:113)處com.android.builder.testing.ConnectedDevice $ installPackages $ 0處的com.android.ddmlib.Device.installPackages(Device.java:915)處。在org.org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45)處調用(未知源)在org.org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)處調用。 codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:128)位於com.android.build.gradle.internal.tasks.InstallVariantTask.install(InstallVariantTask.groovy:119)位於sun.reflect.NativeMethodAccessorImpl.invoke0(位於sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)處的本機方法(java.lang.reflect.Method.invoke(Method.java:483)處的NativeMethodAccessorImpl.java:62)在org.gradle.api.internal.project.taskfa的org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:75) 位於org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory $ StandardTaskAction.execute(AnnotationProcessingTaskFactory.java:219)的ctory.AnnotationProcessingTaskFactory $ StandardTaskAction.doExecute(AnnotationProcessingTaskFactory.java:226)。 org.gradle.api.internal.AbstractTask $ TaskActionWrapper.execute(AbstractTask.java:589)處的taskfactory.AnnotationProcessingTaskFactory $ StandardTaskAction.execute(AnnotationProcessingTaskFactory.java:208)在org.gradle.api.internal.AbstractTask $ TaskActionWrapper.execute( org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:80)處的org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:處的AbstractTask.java:572) 61)at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:46)at org.gradle.api.internal.tasks.execution.PostExecutionAnalys org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:64)上的isTaskExecuter.execute(PostExecutionAnalysisTaskExecuter.java:35)在org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter。在org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:42)處的ValidatingTaskExecuter.java:58) 52)在org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)的org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:53) org.gradle.execution.taskgraph.Abs​​tractTaskPlanExecutor $ TaskExecutorWorker.executeTask(AbstractTaskPlanExecutor.java:79)上的.gradle.api.internal.AbstractTask.executeWithoutThrowingTaskFailure(AbstractTask.java:310)在org.gradle.execution.t org.gradle.execution.taskgraph.Abs​​tractTaskPlanExecutor $ TaskExecutorWorker.run(AbstractTaskPlanExecutor.java:51)上的askgraph.Abs​​tractTaskPlanExecutor $ TaskExecutorWorker.processTask(AbstractTaskPlanExecutor.java:63)在org.gradle.execution.taskgraph.DefaultTaskPlanExecutor.process(Default org.gradle.execution.taskgraph.DefaultTaskGraphExecuter.execute(DefaultTaskGraphExecuter.java:88)的org.gradle.execution.SelectedTaskExecutionAction.execute(SelectedTaskExecutionAction.java:37)的org.gradle.execution.DefaultBuildExecuter.execute的java:23) (DefaultBuildExecuter.java:62)在org.gradle.execution.DefaultBuildExecuter.access $ 200(DefaultBuildExecuter.java:23)在org.gradle.execution.DefaultBuildExecuter $ 2.proceed(DefaultBuildExecuter.java:68)在org.gradle.execution。在org.gradle.execution.DefaultBuildExecuter.execute(DryRunBuildExecutionAction.java:32)上的DryRunBuildExecutionAction.execute(DryRunBuildExecutionAction.java:32)在org.gradle.execution.DefaultBuildExecuter.execute(Def處) org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:149)上的aultBuildExecuter.java:55)org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:106)上的org.gradle.initialization.DefaultGradleLauncher.run (DefaultGradleLauncher.java:86)在org.gradle.launcher.exec.InProcessBuildActionExecuter $ DefaultBuildController.run(InProcessBuildActionExecuter.java:90)在org.gradle.tooling.internal.provider.runner.BuildModelActionRunner.run(BuildModelActionRunner.java:54) )的org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)的org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:41)的org.gradle.launcher.exec.InProcessBuildActionExecuter的。 org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.java:49)的org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly)的execute(InProcessBuildActionExecuter.java:28) JAV a:36),位於org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute(WatchForDisconnection.java:37)的org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)在org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)在org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:26)在org.gradle位於org.gradle.launcher.daemon.server.exec.RequestStopIfSingleUsedDaemon.execute(RequestStopIfSingleUsedDaemon.java:34)的.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120) org.gradle.launcher.daemon.server.exec.ForwardClientInput $ 2.call(ForwardClientInput.java:74)處的.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)在org.gradle.launcher.daemon.server處。 org.org.gradle.util.Swapper.swap(Swapper.java:38)處的exec.ForwardClientInput $ 2.call(ForwardClientInput.java:72) org.gradle.launcher上的.gradle.launcher.daemon.server.exec.ForwardClientInput.execute(ForwardClientInput.java:72)在org.gradle.launcher上的org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120) org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)上的.daemon.server.health.DaemonHealthTracker.execute(DaemonHealthTracker.java:47)在org.gradle.launcher.daemon.server上org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)上的.exec.LogToClient.doBuild(LogToClient.java:66)在org.gradle.launcher.daemon.server.api.DaemonCommandExecution上在org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly)處的.proceed(DaemonCommandExecution.java:120)在org.gradle.launcher.daemon.server.exec。EstablishmentBuildEnvironment.doBuild(FoundBuildEnvironment.java:71) .java:36),位於org.g的org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120) org.gradle.launcher上的radle.launcher.daemon.server.health.HintGCAfterBuild.execute(HintGCAfterBuild.java:41)位於org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)。 org.gradle.launcher.daemon.server.DaemonStateCoordinator $ 1.run(DaemonStateCoordinator.java:246)上的daemon.server.exec.StartBuildOrRespondWithBusy $ 1.run(StartBuildOrRespondWithBusy.java:50)在org.gradle.internal.concurrent.ExecutorPolicy $ CatchAndRecordFailures.onExecute(ExecutorPolicy.java:54)位於org.gradle.internal.concurrent.StoppableExecutorImpl $ 1.run(StoppableExecutorImpl.java:40)位於java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:617)at java.lang.Thread.run(Thread.java:745)06:03:56 E / C:\\ Users \\ Kevin \\ testgdx \\ android \\ build \\ outputs \\ apk \\ android-release.apk:無法完成會話:INSTALL_FAILED_UPDATE_INCOMPATIBLE:包com.testgdx.game.android簽名 與先前安裝的版本不匹配; 無視! :android:installRelease失敗錯誤:任務':android:installRelease'的執行失敗。 com.android.builder.testing.api.DeviceException:com.android.ddmlib.InstallException:無法完成會話:INSTALL_FAILED_UPDATE_INCOMPATIBLE:包com.testgdx.game.android簽名與以前安裝的版本不匹配; 無視! 信息:建立失敗信息:總時間:6.214秒信息:1錯誤信息:0警告信息:請參閱控制台中的完整輸出

您需要先卸載調試應用程序。 您正在嘗試安裝具有相同軟件包但簽名不同的應用程序。

這是一種安全機制,試圖阻止他人對您的應用程序進行更改。 更改后的應用必須使用您的密鑰簽名,並且如果它是其他密鑰(應用的自動簽名調試版本就是這種情況),Android將拒絕它。

嘗試使用uninstallAll gradle任務來卸載應用程序,然后再次嘗試installRelease它對我有用:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM