【问题标题】:Application could not be started应用程序无法启动
【发布时间】:2016-04-29 20:00:15
【问题描述】:

我无法让我的应用程序从 Visual Studio 2015/Xamarin 运行 Android 设备。它无法在设备上启动,并给出以下消息:

The application could not be started.
Ensure that the application has been installed to the target device and has a launchable activity (MainLauncher = true).  
Additionally, check Build->Configuration Manager to ensure this project is set to Deploy for this configuration.

所以我将装饰器[Activity(MainLauncher = true)] 添加到MainActivity。

我在Build-> Configuration Manager 中检查了,AnyCPU、Build 和 Deploy 都被检查了。

重新启动,结果相同,没有在设备上启动并给出相同的消息。

post on StackOverflow 表明以前的应用程序可能尚未完全删除,因此从 adb shell 发出此命令:

adb -s 09103e9 shell pm list packages 

显示设备上的包:

package:com.google.android.ears
package:com.android.launcher
package:com.android.defcontainer
package:com.rovio.popcorn
package:com.nuance.xt9.input
package:com.google.android.exchange
package:com.android.providers.partnerbookmarks
package:com.android.contacts
package:com.google.android.nfcprovision
package:com.android.phone
package:com.android.calculator2
package:com.android.htmlviewer
package:com.google.android.gsf.login
package:com.android.bluetooth
package:com.android.providers.calendar
package:com.google.android.email
package:Mono.Android.Platform.ApiLevel_23
package:com.android.providers.downloads.ui
package:com.mobilerise.mystreetview
package:com.android.documentsui
package:com.android.sharedstoragebackup
package:com.android.vpndialogs
package:com.android.providers.media
package:com.google.android.marvin.talkback
package:jp.co.omronsoft.iwnnime.ml.kbd.white
package:com.android.certinstaller
package:com.google.android.deskclock
package:com.google.android.gms
package:com.google.android.apps.currents
package:com.google.android.setupwizard
package:com.example.android.osmdroidofflinedemo
package:com.android.settings
package:com.meraki.sm
package:com.google.android.street
package:com.hp.android.printservice
package:com.google.android.googlequicksearchbox
package:com.google.android.music
package:com.android.musicvis
package:eu.thedarken.sdm
package:com.android.wallpaper.livepicker
package:com.google.android.inputmethod.latin
package:net.osmand
package:com.android.packageinstaller
package:com.google.android.backuptransport
package:com.google.android.apps.chromecast.app
package:com.google.android.tts
package:com.android.providers.telephony
package:com.android.noisefield
package:com.google.android.apps.maps
package:com.google.android.apps.cloudprint
package:com.funtrigger.appinstaller
package:com.wf.wellsfargomobile
package:com.pandora.android
package:com.android.wallpapercropper
package:com.android.location.fused
package:com.android.backupconfirm
package:com.android.providers.settings
package:jp.co.omronsoft.iwnnime.ml
package:si.formias.keepscreenon
package:com.google.android.apps.docs
package:com.android.providers.downloads
package:com.amazon.mp3
package:com.android.browser.provider
package:com.android.musicfx
package:com.google.android.apps.books
package:com.android.phasebeam
package:com.google.android.videos
package:com.google.android.inputmethod.pinyin
package:com.google.android.gallery3d
package:com.google.android.onetimeinitializer
package:oliver.ehrenmueller.dbadmin
package:com.esri.arcgis.collector
package:com.google.android.partnersetup
package:com.wunderground.android.weather
package:com.adobe.reader
package:com.android.proxyhandler
package:com.android.inputdevices
package:com.andrewshu.android.reddit
package:com.android.wallpaper.holospiral
package:com.google.android.feedback
package:com.google.android.talk
package:com.android.nfc
package:com.google.android.apps.enterprise.dmagent
package:com.android.providers.userdictionary
package:com.google.android.inputmethod.korean
package:com.google.android.configupdater
package:com.android.pacprocessor
package:com.quickoffice.android
package:com.google.android.keep
package:com.android.printspooler
package:android
package:com.android.providers.contacts
package:com.techsmith.apps.fuse
package:com.android.externalstorage
package:com.mictale.gpsessentials
package:com.estrongs.android.taskmanager
package:com.android.dreams.basic
package:com.google.android.apps.plus
package:com.android.vending
package:com.google.android.play.games
package:com.android.systemui
package:com.android.keychain
package:com.google.android.gm
package:com.google.android.tag
package:com.android.wallpaper
package:com.google.android.GoogleCamera
package:com.estrongs.android.pop
package:com.google.android.apps.magazines
package:com.google.android.youtube
package:Mono.Android.DebugRuntime
package:com.google.earth
package:com.google.android.gsf
package:com.android.keyguard
package:com.google.android.calendar
package:com.android.facelock
package:com.android.chrome
package:com.android.shell
package:com.google.android.syncadapters.contacts

这些都不是应用程序。网上的一些建议是删除 Mono 包,所以我用这个命令删除了这些:

adb -s 091930e9 shell pm uninstall -k Mono.Android.Platform.ApiLevel-23
adb -s 091930e9 shell pm uninstall -k Mono.Android.DebugRuntime

但这没有任何效果。这会在从 Visual Studio 启动应用程序时重新安装。

在 VS MyProject.Native.Droid properties > Android Options > Packaging 中,未选中使用快速部署(仅限调试模式) 没有效果。

在 VS MyProject.Native.Droid properties > Android Options > Advanced 中,验证检查了 x68。

查看@hvaughn 建议的构建输出,有以下警告,这也是错误列表中的警告:

Found conflicts between different versions of the same dependent assembly. 
In Visual Studio, double-click this warning (or select it and press Enter) to fix the conflicts; otherwise, add the following binding redirects to the "runtime" node in the application configuration file:
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
    <dependentAssembly><assemblyIdentity name="System.Net.Http" culture="neutral" publicKeyToken="b03f5f7f11d50a3a" />
    <bindingRedirect oldVersion="0.0.0.0-4.0.0.0" newVersion="4.0.0.0" /></dependentAssembly></assemblyBinding> 
    MyProject.Native.Droid          
    One or more dependent assemblies have version conflicts

在错误列表中还写着:

Do you want to fix these conflicts by adding binding redirrect records in the application configuration file?

我点击是。然后此警告会消失,直到下一次构建并再次出现,所以这没有效果。

然后是这样的:

:Deployment failed
Mono.AndroidTools.InstallFailedException: Failure [INSTALL_FAILED_UPDATE_INCOMPATIBLE]
   at Mono.AndroidTools.Internal.AdbOutputParsing.CheckInstallSuccess(String output, String packageName)
   at Mono.AndroidTools.AndroidDevice.<InstallPackage>c__AnonStoreyD.<>m__0(Task`1 t)
   at System.Threading.Tasks.ContinuationTaskFromResultTask`1.InnerInvoke()
   at System.Threading.Tasks.Task.Execute()
Deployment failed because of an internal error: Failure [INSTALL_FAILED_UPDATE_INCOMPATIBLE]
InternalError
Build succeeded.
Deploy successfully on Google Nexus 7

这发生在 2 台设备上,即 Google Nexus 7 和三星 SM-T530NU。

代码来自远程 Git 存储库。

在@Matt 的建议下,我创建了一个新的 Hello World 类型的解决方案并安装在设备上。

不知道该怎么办,网络上针对此错误的建议是删除应用程序,我使用adb 完成了此操作,如上所示。我也对“部署成功...”消息感到困惑,因为它不在设备上。

编辑

解决办法是恢复出厂设置。这告诉我,尽管我采取了各种步骤来删除应用程序/包,但它仍然存在。

【问题讨论】:

  • 查看构建输出的内容,这通常有更多有用的信息。对我来说,问题是我需要检查 Android 项目属性中的 x86 架构,但这只是因为我试图在 Xamarin Android 模拟器上运行该应用程序。
  • 您的开发机器上是否安装了 Android SDK 23?
  • 唯一的其他想法是从list packages 命令中删除-3 开关,以确保尚未安装与应用程序关联的服务组件。
  • 你能安装一个具有类似设置的新空白应用程序吗?
  • 你使用了相同的包名吗?

标签: android xamarin xamarin.android


【解决方案1】:

您可以通过单击您的 android 项目然后打开属性,然后选择 android manifest 来找到您的包名称。 找到具有相同包名的旧应用程序,将其删除,一切正常。

应该是这样的:

【讨论】:

  • 感谢您明确说明包名称是什么。尽管如此,当我执行上述 adb list packages 命令时,它并没有列出。
  • 而且在图标坏掉的应用安装列表中也找不到?如果可能的话,将手机重置为出厂默认设置
  • 是的,一些 Xamarin android 的旧默认图标。请检查它是否在应用程序列表中而不是在 adb 列表中,而是在手机的 de 设置中。并重启手机。
  • 重启或恢复出厂设置也不能解决这个问题?
  • 那我只知道恢复出厂设置尝试修复
【解决方案2】:

INSTALL_FAILED_UPDATE_INCOMPATIBLE 表示您的应用已部署在具有旧版本 Xamarin 的设备上。

部署过程删除了旧应用的图标,但没有删除旧应用。因此,您现在需要在没有图标的情况下删除您的应用,然后再重新部署。这是 Xamarin 在 Android 上部署的一个非常古老的限制。为此:

  • 转到设置/应用程序
  • 找到您的应用,它的名称将类似于 com.company,而不是应用的名称
  • 删除
  • 重新部署

【讨论】:

  • 此应用列表存在问题,我看不到与该应用相关的任何内容。
  • 这不是包名。包名就像一个域名。它应该以 com.companyname.appname 开头
  • 请添加此行或编辑设置 -> 应用程序 -> 全部 -> 然后选择您的应用程序
【解决方案3】:

尝试使用模拟器在发布项目配置中生成 apk,然后将该 apk 文件手动安装到设备并检查它是否显示更新屏幕或新安装屏幕。如果它显示更新屏幕,则该应用程序可能在您的手机中,否则解决方案肯定有问题。您也可以尝试使用 Xamarin studio 使用相同的 sln 文件调试应用程序,以检查 VS2015 中是否存在问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-04-03
    • 2018-11-30
    • 2017-03-09
    • 2015-04-01
    • 2022-01-12
    • 2015-07-11
    相关资源
    最近更新 更多