【问题标题】:In Visual Studio 16.9.0 Android "deploy to device" error - Command too long在 Visual Studio 16.9.0 Android 中“部署到设备”错误 - 命令太长
【发布时间】:2021-06-02 12:34:04
【问题描述】:

在我的 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, AsyncCallback callback, 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 ==========

有什么想法吗?

谢谢!

【问题讨论】:

  • 看来您正在使用 pixel_3a_xl 模拟器。重新启动您的机器并首先从 AVD 运行模拟器,然后尝试部署。
  • 我在任何设备上都遇到了同样的错误:模拟器或真实设备。
  • 我遇到了同样的问题。完全一样的错误。
  • 我在 16.9.0 升级后得到了完全相同的错误。之前一切正常...
  • 在更新 VS 后,我在部署到 Android 时也遇到了一些问题。清理解决方案后,关闭 VS 并删除“obj”目录,再次打开 VS 并从头开始构建解决方案,它起作用了。不同的部署问题/错误,但可能值得一试。

标签: xamarin xamarin.forms xamarin.android visual-studio-2019 visual-studio-debugging


【解决方案1】:

TLDR

我可以通过在 Android 项目选项中的 Android 选项 选项卡中取消选中 Use Fast Deployment 来解决此问题。

详情

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

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

Visual Studio Build Output

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

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

【讨论】:

  • 这为我解决了问题。谢谢!
【解决方案2】:

您好,只是让您知道我也遇到了这个问题,但是自从升级到 16.9.5 后,这似乎再次对我有用,并勾选了快速部署 :)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-06-14
    • 1970-01-01
    • 2016-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-07
    • 1970-01-01
    相关资源
    最近更新 更多