gpt4 book ai didi

android - 将许可协议(protocol)从我的工作站传输到 Azure Pipeline 代理

转载 作者:搜寻专家 更新时间:2023-11-01 09:21:57 24 4
gpt4 key购买 nike

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

Failed to install the following Android SDK packages as some licences have not been accepted. build-tools;28.0.3 Android SDK Build-Tools 28.0.3 To build this project, accept the SDK license agreements and install the missing components using the Android Studio SDK Manager. Alternatively, to transfer the license agreements from one workstation to another, see http://d.android.com/r/studio-ui/export-licenses.html

因为代理由 Microsoft 直接管理(托管 VS2017 代理),我无法手动运行命令行来接受丢失的许可证。

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

步骤如下:

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

这是 azure 管道中任务的屏幕截图:

enter image description here

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

[section]Starting: Copy Files to: C:\Program Files (x86)\Android\android-sdk\licenses\ ============================================================================== Task : Copy Files Description : Copy files from source folder to target folder using match patterns (The match patterns will only match file paths, not folder paths) Version : 2.117.2 Author
: Microsoft Corporation Help : More Information ============================================================================== found 6 files Cleaning target folder: C:\Program Files (x86)\Android\android-sdk\licenses\ Copying D:\a\1\s\licenses\android-googletv-license to C:\Program Files (x86)\Android\android-sdk\licenses\android-googletv-license Copying D:\a\1\s\licenses\android-sdk-license to C:\Program Files (x86)\Android\android-sdk\licenses\android-sdk-license Copying D:\a\1\s\licenses\android-sdk-preview-license to C:\Program Files (x86)\Android\android-sdk\licenses\android-sdk-preview-license Copying D:\a\1\s\licenses\google-gdk-license to C:\Program Files (x86)\Android\android-sdk\licenses\google-gdk-license Copying D:\a\1\s\licenses\intel-android-extra-license to C:\Program Files (x86)\Android\android-sdk\licenses\intel-android-extra-license Copying D:\a\1\s\licenses\mips-android-sysimage-license to C:\Program Files (x86)\Android\android-sdk\licenses\mips-android-sysimage-license [section]Finishing: Copy Files to: C:\Program Files (x86)\Android\android-sdk\licenses\

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

有解决问题的想法吗?

最佳答案

抱歉给您带来麻烦,@rolandl。 Android SDK 许可中的某些内容在 Windows 上发生了变化。我们有一个长期修复,但这里有一个解决方法,直到修复到达所有生产环境:

  1. 添加 PowerShell进入管道的最开始。将内联 PowerShell 脚本设置为以下内容,它会更新 VS2017 虚拟机上的 Android 许可证:

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

    目录 '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

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

  2. 验证 PowerShell 步骤是否在构建开始时运行并且构建的其余部分再次成功。

关于android - 将许可协议(protocol)从我的工作站传输到 Azure Pipeline 代理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54325029/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com