微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 Visual Studio 16.9.0 Android“部署到设备”错误 - 命令太长

如何解决在 Visual Studio 16.9.0 Android“部署到设备”错误 - 命令太长

在我的 xamarin Android 项目中,一切正常,直到我更新到 Visual Studio 2019 v16.9.0。

升级以来,我能够成功构建项目,但如果我尝试部署或调试到设备或模拟器,我收到以下错误

[构建日志的最后一部分]

  Adding assembly reference for Xamarin.Firebase.Analytics.Impl,recursively...
  Adding assembly reference for Xamarin.Firebase.Common,recursively...
  Adding assembly reference for Xamarin.Firebase.Iid,recursively...
  Adding assembly reference for Xamarin.Firebase.Iid.Interop,recursively...
  Adding assembly reference for Xamarin.Firebase.Measurement.Connector,recursively...
  Adding assembly reference for Xamarin.Firebase.Messaging,recursively...
  Adding assembly reference for Xamarin.Forms.Core,recursively...
  Adding assembly reference for Xamarin.Forms.Platform.Android,recursively...
  Adding assembly reference for Xamarin.Forms.Platform,recursively...
  Adding assembly reference for Xamarin.Forms.Xaml,recursively...
  Adding assembly reference for Xamarin.Google.Android.Material,recursively...
  Adding assembly reference for Xamarin.Google.Autovalue.Annotations,recursively...
  Adding assembly reference for Xamarin.Google.Guava.ListenableFuture,recursively...
  Adding assembly reference for Xamarin.GooglePlayServices.Ads.Identifier,recursively...
  Adding assembly reference for Xamarin.GooglePlayServices.Analytics,recursively...
  Adding assembly reference for Xamarin.GooglePlayServices.Analytics.Impl,recursively...
  Adding assembly reference for Xamarin.GooglePlayServices.Base,recursively...
  Adding assembly reference for Xamarin.GooglePlayServices.Basement,recursively...
  Adding assembly reference for Xamarin.GooglePlayServices.Location,recursively...
  Adding assembly reference for Xamarin.GooglePlayServices.Maps,recursively...
  Adding assembly reference for Xamarin.GooglePlayServices.Measurement.Api,recursively...
  Adding assembly reference for Xamarin.GooglePlayServices.Measurement.Base,recursively...
  Adding assembly reference for Xamarin.GooglePlayServices.Places.PlaceReport,recursively...
  Adding assembly reference for Xamarin.GooglePlayServices.Stats,recursively...
  Adding assembly reference for Xamarin.GooglePlayServices.TagManager.V4.Impl,recursively...
  Adding assembly reference for Xamarin.GooglePlayServices.Tasks,recursively...
Skipping target "_copyConfigFiles" because all output files are up-to-date with respect to the input files.
Skipping target "_ConvertPdbFiles" because all output files are up-to-date with respect to the input files.
Skipping target "_LinkAssembliesNoShrink" because all output files are up-to-date with respect to the input files.
Skipping target "_Androidxcecilfy" because all output files are up-to-date with respect to the input files.
Skipping target "_GenerateJavaStubs" because all output files are up-to-date with respect to the input files.
Skipping target "_ManifestMerger" because all output files are up-to-date with respect to the input files.
Skipping target "_ConvertCustomView" because all output files are up-to-date with respect to the input files.
Skipping target "_AndroidXJetifyManifest" because all output files are up-to-date with respect to the input files.
Skipping target "_AddStaticResources" because all output files are up-to-date with respect to the input files.
Skipping target "_GeneratePackageManagerJava" because all output files are up-to-date with respect to the input files.
Skipping target "_GenerateAndroidAssetsDir" because all output files are up-to-date with respect to the input files.
Skipping target "_PrepareCreateBaseApk" because all output files are up-to-date with respect to the input files.
Skipping target "_CreateBaseApk" because all output files are up-to-date with respect to the input files.
Skipping target "_CompileJava" because all output files are up-to-date with respect to the input files.
Skipping target "_CompileNativeAssemblySources" because all output files are up-to-date with respect to the input files.
Skipping target "_CreateApplicationSharedLibraries" because all output files are up-to-date with respect to the input files.
Skipping target "_AndroidXJetifyJavaLibraryRules" because all output files are up-to-date with respect to the input files.
Skipping target "_AndroidXJetifyProguardRules" because all output files are up-to-date with respect to the input files.
Skipping target "_CompiletoDalvik" because all output files are up-to-date with respect to the input files.
copying file from "C:\temp\100\android\bin\com.caledoslab.runner.apk" to "C:\Caledos\code\Runner\CaledosLab.Runner.Android\bin\Debug\com.caledoslab.runner.apk".
Creating "C:\temp\100\android_debug_keystore.flag" because "AlwaysCreate" was specified.
C:\Program Files (x86)\Android\android-sdk\build-tools\30.0.2\zipalign.exe -p 4 "C:\temp\100\android\bin\com.caledoslab.runner.apk" "bin\Debug\\com.caledoslab.runner-Signed.apk" 
C:\Program Files\Android\Jdk\microsoft_dist_openjdk_1.8.0.25\bin\java.exe -jar "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Xamarin\Android\apksigner.jar" sign --ks "C:\Users
icold\AppData\Local\Xamarin\Mono for Android\debug.keystore" --ks-pass pass:android --ks-key-alias androiddebugkey --key-pass pass:android --min-sdk-version 21 --max-sdk-version 29  C:\Caledos\code\Runner\CaledosLab.Runner.Android\bin\Debug\com.caledoslab.runner-Signed.apk 
Signed android package 'bin\Debug\com.caledoslab.runner-Signed.apk'
Using cached value from RegisterTaskObject
Found device: emulator-5554

    Command too long

   at Mono.AndroidTools.Adb.AdbClient.GetCommandBuffer(String command) in C:\A\1\36\s\External\androidtools\Mono.AndroidTools\Adb\AdbClient.cs:line 258
   at Mono.AndroidTools.Adb.AdbClient.BeginWriteCommand(String command,AsyncCallback callback,Object state) in C:\A\1\36\s\External\androidtools\Mono.AndroidTools\Adb\AdbClient.cs:line 227
   at Mono.AndroidTools.Adb.AdbClient.BeginWriteCommandWithStatus(String command,Object state) in C:\A\1\36\s\External\androidtools\Mono.AndroidTools\Adb\AdbClient.cs:line 274
   at System.Threading.Tasks.TaskFactory`1.FromAsyncImpl[TArg1](Func`4 beginMethod,Func`2 endFunction,Action`1 endAction,TArg1 arg1,Object state,TaskCreationoptions creationoptions)
   at Mono.AndroidTools.Internal.AdbClientTaskExtensions.WriteCommandWithStatusAsync(AdbClient client,String command,TaskCreationoptions options) in C:\A\1\36\s\External\androidtools\Mono.AndroidTools\Internal\AdbClientTaskExtensions.cs:line 62
   at Mono.AndroidTools.AndroidDevice.<>c__displayClass62_0.<RunShellCommand>b__0(Task t) in C:\A\1\36\s\External\androidtools\Mono.AndroidTools\AndroidDevice.cs:line 403
   at System.Threading.Tasks.ContinuationResultTaskFromTask`1.InnerInvoke()
   at System.Threading.Tasks.Task.Execute()
Done building project "CaledosLab.Runner.Android.csproj" -- Failed.
Build Failed.
12>Deployment Failed to pixel_3a_xl.
========== Build: 11 succeeded,0 Failed,0 up-to-date,0 skipped ==========
========== Deploy: 0 succeeded,1 Failed,0 skipped ==========

有什么想法吗?

谢谢!

解决方法

TLDR

通过在 Android 项目选项中的 Android 选项 标签中取消选中使用快速部署,我能够解决此问题。

细节

我运行的是 Visual Studio 2019 v16.9。升级之前我没有问题,但上周升级到 16.9 后,我开始遇到这个问题。无论目标模拟器/设备如何,都会发生此错误。

在 Visual Studio 的构建和运行设置中启用诊断构建输出后,我可以在构建输出中看到失败发生在快速部署应用程序文件

Visual Studio Build Output

一旦我取消选中快速部署,部署工作正常。我重新开启快速部署并尝试重新部署,但仍然失败。

所以现在我在禁用快速部署的情况下继续开发,到目前为止还没有出现问题。

,

嗨,只是让你知道我也有这个问题,但自从升级到 16.9.5 后,这似乎又对我有用了,快速部署打勾:)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。