将许可协议从我的工作站转移到Azure Pipeline代理

时间:2019-01-23 10:23:48

标签: android azure-devops azure-pipelines android-sdk-manager

我正在使用Azure Pipeline以便在我的Android项目上执行CI。从昨天开始,配置项未能通过以下消息构建应用程序:

  

由于某些许可证尚未接受,因此无法安装以下Android SDK软件包。       build-tools; 28.0.3 Android SDK Build-Tools 28.0.3   要构建此项目,请接受SDK许可协议并使用Android Studio SDK Manager安装缺少的组件。   或者,要将许可协议从一个工作站转移到另一个工作站,请参阅http://d.android.com/r/studio-ui/export-licenses.html

由于该代理由Microsoft(托管的VS2017代理)直接管理,因此我无法手动运行命令行以接受缺少的许可证。

按照gradle的建议,我试图创建一个任务,以便将许可证从我的工作站复制到Azure Pipeline。

这里是步骤:

  • 我已将我的android-sdk主页中的许可证添加到android应用程序的源代码中
  • 我已在管道中添加了一个任务,以便将这些许可证文件复制到管道工作站的许可证目录中。

以下是天蓝色管道中任务的屏幕截图:

enter image description here

根据日志,似乎已正确完成此文件的副本:

  

[节]开始:将文件复制到:C:\ Program Files(x86)\ Android \ android-sdk \ licenses \   ================================================== ===========================任务:复制文件说明:从源文件夹复制文件   使用匹配模式定位到目标文件夹(匹配模式只会   匹配文件路径,而不是文件夹路径)版本:2.117.2作者
  :Microsoft Corporation帮助:More Information   ================================================== ============================找到6个文件清理目标文件夹:C:\ Program Files   (x86)\ Android \ android-sdk \ licenses \复制   D:\ a \ 1 \ s \ licenses \ android-googletv-license到C:\ Program Files   (x86)\ Android \ android-sdk \ licenses \ android-googletv-license复制   D:\ a \ 1 \ s \ licenses \ android-sdk-license到C:\ Program Files   (x86)\ Android \ android-sdk \ licenses \ android-sdk-license复制   D:\ a \ 1 \ s \ licenses \ android-sdk-preview-license到C:\ Program Files   (x86)\ Android \ android-sdk \ licenses \ android-sdk-preview-license复制   D:\ a \ 1 \ s \ licenses \ google-gdk-license到C:\ Program Files   (x86)\ Android \ android-sdk \ licenses \ google-gdk-license复制   D:\ a \ 1 \ s \ licenses \ intel-android-extra-license到C:\ Program Files   (x86)\ Android \ android-sdk \ licenses \ intel-android-extra-license复制   D:\ a \ 1 \ s \ licenses \ mips-android-sysimage-license到C:\ Program Files   (x86)\ Android \ android-sdk \ licenses \ mips-android-sysimage-license   [部分]完成:将文件复制到:C:\ Program Files(x86)\ Android \ android-sdk \ licenses \

但是问题仍然存在。请注意,此复制任务在gradle之前完成。

您想解决此问题的任何想法吗?

1 个答案:

答案 0 :(得分:2)

对不起,@ rolandl。 Windows上的Android SDK许可中的某些内容已更改。我们有一个较长期的修复程序,但是在解决方案投入生产之前,这里有一个解决方法:

  1. 在管道的开始处添加一个PowerShell步骤。将内联PowerShell脚本设置为以下脚本,以更新VS2017虚拟机上的Android许可证:

    Get-ChildItem -path'C:\ Program Files(x86)\ Android \ android-sdk \ licenses'| Remove-Item -Recurse -Confirm:$ false -Force

    dir'C:\ Program Files(x86)\ Android \ android-sdk \ licenses'

    $ base64Content =“UEsDBBQAAAAAAKJeN06amkPzKgAAACoAAAAhAAAAbGljZW5zZXMvYW5kcm9pZC1nb29nbGV0di1saWNlbnNlDQpmYzk0NmU4ZjIzMWYzZTMxNTliZjBiN2M2NTVjOTI0Y2IyZTM4MzMwUEsDBBQAAAAIAKBrN05E + YSqQwAAAFQAAAAcAAAAbGljZW5zZXMvYW5kcm9pZC1zZGstbGljZW5zZQXByREAIQgEwP9WmYsjhxgOKJN / CNs9vmdOQ2zdRw2dxQnWjqQ / 3oIgXQM9vqUiwkiX8ljWea4ZlCF3xTo1pz6w + wdQSwMEFAAAAAAAxV43TpECY7AqAAAAKgAAACQAAABsaWNlbnNlcy9hbmRyb2lkLXNkay1wcmV2aWV3LWxpY2Vuc2UNCjUwNDY2N2Y0YzBkZTdhZjFhMDZkZTlmNGIxNzI3Yjg0MzUxZjI5MTBQSwMEFAAAAAAAzF43TpOr0CgqAAAAKgAAABsAAABsaWNlbnNlcy9nb29nbGUtZ2RrLWxpY2Vuc2UNCjMzYjZhMmI2NDYwN2YxMWI3NTlmMzIwZWY5ZGZmNGFlNWM0N2Q5N2FQSwMEFAAAAAAAz143TqxN4xEqAAAAKgAAACQAAABsaWNlbnNlcy9pbnRlbC1hbmRyb2lkLWV4dHJhLWxpY2Vuc2UNCmQ5NzVmNzUxNjk4YTc3YjY2MmYxMjU0ZGRiZWVkMzkwMWU5NzZmNWFQSwMEFAAAAAAA0l43Tu2ee / 8qAAAAKgAAACYAAABsaWNlbnNlcy9taXBzLWFuZHJvaWQtc3lzaW1hZ2UtbGljZW5zZQ0KNjNkNzAzZjU2OTJmZDg5MWQ1YWNhY2ZiZDhlMDlmNDBmYzk3NjEwNVBLAQIUABQAAAAAAKJeN06amkPzKgAAACoAAAAhAAAAAAAAAAEAIAAAAAAAAABsaWNlbnNlcy9hbmRyb2lkLWdvb2dsZXR2LWxpY2Vuc2V QSwECFAAUAAAACACgazdORPmEqkMAAABUAAAAHAAAAAAAAAABACAAAABpAAAAbGljZW5zZXMvYW5kcm9pZC1zZGstbGljZW5zZVBLAQIUABQAAAAAAMVeN06RAmOwKgAAACoAAAAkAAAAAAAAAAEAIAAAAOYAAABsaWNlbnNlcy9hbmRyb2lkLXNkay1wcmV2aWV3LWxpY2Vuc2VQSwECFAAUAAAAAADMXjdOk6vQKCoAAAAqAAAAGwAAAAAAAAABACAAAABSAQAAbGljZW5zZXMvZ29vZ2xlLWdkay1saWNlbnNlUEsBAhQAFAAAAAAAz143TqxN4xEqAAAAKgAAACQAAAAAAAAAAQAgAAAAtQEAAGxpY2Vuc2VzL2ludGVsLWFuZHJvaWQtZXh0cmEtbGljZW5zZVBLAQIUABQAAAAAANJeN07tnnv / KgAAACoAAAAmAAAAAAAAAAEAIAAAACECAABsaWNlbnNlcy9taXBzLWFuZHJvaWQtc3lzaW1hZ2UtbGljZW5zZVBLBQYAAAAABgAGANoBAACPAgAAAAA =“

    $ content = [System.Convert] :: FromBase64String($ base64Content)

    Set-Content -Path。\ android-sdk-licenses.zip -Value $ content -Encoding Byte

    Expand-Archive -Path。\ android-sdk-licenses.zip -DestinationPath'C:\ Program Files(x86)\ Android \ android-sdk'-Force

    dir'C:\ Program Files(x86)\ Android \ android-sdk \ licenses'

  2. 验证PowerShell步骤在构建开始时运行,其余构建再次成功。