我无法让我的应用程序从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
这些都不是申请。网上的一些建议是删除 单声道包,所以我用这个命令删除了它们:
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台设备上,即谷歌Nexus 7和三星SM-T530NU。
代码来自远程Git存储库。
根据@Matt的建议,我创建了一个新的Hello World类型解决方案,并将其安装在设备上。
不确定如何处理此问题,网络上针对此错误的建议正在移除应用,我使用adb
进行了操作,如上所示。我也对#34;成功部署感到困惑......&#34;消息,因为它不在设备上。
修改
解决方案是重置工厂。这告诉我,尽管我采取了各种步骤来删除app / package,但它仍然存在。
答案 0 :(得分:7)
INSTALL_FAILED_UPDATE_INCOMPATIBLE表示您的应用已使用旧版本的Xamarin部署在设备上。
部署过程删除了旧应用的图标,但未删除旧应用。因此,您现在需要在再次部署之前删除您的应用而不使用其图标。这是Android上Xamarin部署的一个非常古老的限制。要做到这一点:
答案 1 :(得分:7)
答案 2 :(得分:1)
尝试使用模拟器在发布项目配置中生成apk,然后手动将该apk文件安装到设备,并检查它是否显示更新屏幕或新安装屏幕。如果它显示更新屏幕,那么应用程序可能在您的手机中,否则解决方案中一定存在问题。您也可以尝试使用Xamarin工作室使用相同的sln文件调试应用程序,以检查VS2015中是否存在问题。