[windows] Exception: Bad UTF-8 encoding when running flutter doctor or building/running for Windows

使用Flutter构建Windows应用时出错。

Doctor summary (to see all details, run flutter doctor -v):
[√] Flutter (Channel stable, 3.0.1, on Microsoft Windows [版本 10.0.18363.1556], locale zh-CN)
[√] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
[√] Chrome - develop for the web
[☠] Visual Studio - develop for Windows (the doctor check crashed)
    X Due to an error, the doctor check did not complete. If the error message below is not helpful, please let us know
      about this issue at https://github.com/flutter/flutter/issues.
    X Exception: Bad UTF-8 encoding (U+FFFD; REPLACEMENT CHARACTER) found while decoding string: [
        {
          "instanceId": "62bcb43a",
          "installDate": "2022-05-30T09:28:17Z",
          "installationName": "VisualStudio/17.2.2+32519.379",
          "installationPath": "D:\\Program\\Microsoft Visual",
          "installationVersion": "17.2.32519.379",
          "productId": "Microsoft.VisualStudio.Product.Community",
          "productPath": "D:\\Program\\Microsoft Visual\\Common7\\IDE\\devenv.exe",
          "state": 4294967295,
          "isComplete": true,
          "isLaunchable": true,
          "isPrerelease": false,
          "isRebootRequired": false,
          "displayName": "Visual Studio Community 2022",
          "description": "����ǿ��� IDE����ѧ��������Դ��������ߺ͸������ʹ��",
          "channelId": "VisualStudio.17.Release",
          "channelUri": "https://aka.ms/vs/17/release/channel",
          "enginePath": "C:\\Program Files (x86)\\Microsoft Visual
          Studio\\Installer\\resources\\app\\ServiceHub\\Services\\Microsoft.VisualStudio.Setup.Service",
          "installedChannelUri": "https://aka.ms/vs/17/release/channel",
          "releaseNotes": "https://docs.microsoft.com/en-us/visualstudio/releases/2022/release-notes-v17.2#17.2.2",
          "thirdPartyNotices": "https://go.microsoft.com/fwlink/?LinkId=661288",
          "updateDate": "2022-05-30T09:28:17.6788553Z",
          "catalog": {
            "buildBranch": "d17.2",
            "buildVersion": "17.2.32519.379",
            "id": "VisualStudio/17.2.2+32519.379",
            "localBuild": "build-lab",
            "manifestName": "VisualStudio",
            "manifestType": "installer",
            "productDisplayVersion": "17.2.2",
            "productLine": "Dev17",
            "productLineVersion": "2022",
            "productMilestone": "RTW",
            "productMilestoneIsPreRelease": "False",
            "productName": "Visual Studio",
            "productPatchVersion": "2",
            "productPreReleaseMilestoneSuffix": "1.0",
            "productSemanticVersion": "17.2.2+32519.379",
            "requiredEngineVersion": "3.2.2148.26540"
          },
          "properties": {
            "campaignId": "2030:dff60cf3-4ddb-411d-b2c8-cb3f32da9eb2",
            "channelManifestId": "VisualStudio.17.Release/17.2.2+32519.379",
            "nickname": "",
            "setupEngineFilePath": "C:\\Program Files (x86)\\Microsoft Visual Studio\\Installer\\setup.exe"
          }
        }
      ]
      . The Flutter team would greatly appreciate if you could file a bug explaining exactly what you were doing when
      this happened:
      https://github.com/flutter/flutter/issues/new/choose
      The source bytes were:
      [91, 13, 10, 32, 32, 123, 13, 10, 32, 32, 32, 32, 34, 105, 110, 115, 116, 97, 110, 99, 101, 73, 100, 34, 58, 32,
      34, 54, 50, 98, 99, 98, 52, 51, 97, 34, 44, 13, 10, 32, 32, 32, 32, 34, 105, 110, 115, 116, 97, 108, 108, 68, 97,
      116, 101, 34, 58, 32, 34, 50, 48, 50, 50, 45, 48, 53, 45, 51, 48, 84, 48, 57, 58, 50, 56, 58, 49, 55, 90, 34, 44,
      13, 10, 32, 32, 32, 32, 34, 105, 110, 115, 116, 97, 108, 108, 97, 116, 105, 111, 110, 78, 97, 109, 101, 34, 58,
      32, 34, 86, 105, 115, 117, 97, 108, 83, 116, 117, 100, 105, 111, 47, 49, 55, 46, 50, 46, 50, 43, 51, 50, 53, 49,
      57, 46, 51, 55, 57, 34, 44, 13, 10, 32, 32, 32, 32, 34, 105, 110, 115, 116, 97, 108, 108, 97, 116, 105, 111, 110,
      80, 97, 116, 104, 34, 58, 32, 34, 68, 58, 92, 92, 80, 114, 111, 103, 114, 97, 109, 92, 92, 77, 105, 99, 114, 111,
      115, 111, 102, 116, 32, 86, 105, 115, 117, 97, 108, 34, 44, 13, 10, 32, 32, 32, 32, 34, 105, 110, 115, 116, 97,
      108, 108, 97, 116, 105, 111, 110, 86, 101, 114, 115, 105, 111, 110, 34, 58, 32, 34, 49, 55, 46, 50, 46, 51, 50,
      53, 49, 57, 46, 51, 55, 57, 34, 44, 13, 10, 32, 32, 32, 32, 34, 112, 114, 111, 100, 117, 99, 116, 73, 100, 34, 58,      32, 34, 77, 105, 99, 114, 111, 115, 111, 102, 116, 46, 86, 105, 115, 117, 97, 108, 83, 116, 117, 100, 105, 111,
      46, 80, 114, 111, 100, 117, 99, 116, 46, 67, 111, 109, 109, 117, 110, 105, 116, 121, 34, 44, 13, 10, 32, 32, 32,
      32, 34, 112, 114, 111, 100, 117, 99, 116, 80, 97, 116, 104, 34, 58, 32, 34, 68, 58, 92, 92, 80, 114, 111, 103,
      114, 97, 109, 92, 92, 77, 105, 99, 114, 111, 115, 111, 102, 116, 32, 86, 105, 115, 117, 97, 108, 92, 92, 67, 111,
      109, 109, 111, 110, 55, 92, 92, 73, 68, 69, 92, 92, 100, 101, 118, 101, 110, 118, 46, 101, 120, 101, 34, 44, 13,
      10, 32, 32, 32, 32, 34, 115, 116, 97, 116, 101, 34, 58, 32, 52, 50, 57, 52, 57, 54, 55, 50, 57, 53, 44, 13, 10,
      32, 32, 32, 32, 34, 105, 115, 67, 111, 109, 112, 108, 101, 116, 101, 34, 58, 32, 116, 114, 117, 101, 44, 13, 10,
      32, 32, 32, 32, 34, 105, 115, 76, 97, 117, 110, 99, 104, 97, 98, 108, 101, 34, 58, 32, 116, 114, 117, 101, 44, 13,      10, 32, 32, 32, 32, 34, 105, 115, 80, 114, 101, 114, 101, 108, 101, 97, 115, 101, 34, 58, 32, 102, 97, 108, 115,
      101, 44, 13, 10, 32, 32, 32, 32, 34, 105, 115, 82, 101, 98, 111, 111, 116, 82, 101, 113, 117, 105, 114, 101, 100,
      34, 58, 32, 102, 97, 108, 115, 101, 44, 13, 10, 32, 32, 32, 32, 34, 100, 105, 115, 112, 108, 97, 121, 78, 97, 109,      101, 34, 58, 32, 34, 86, 105, 115, 117, 97, 108, 32, 83, 116, 117, 100, 105, 111, 32, 67, 111, 109, 109, 117, 110,      105, 116, 121, 32, 50, 48, 50, 50, 34, 44, 13, 10, 32, 32, 32, 32, 34, 100, 101, 115, 99, 114, 105, 112, 116, 105,      111, 110, 34, 58, 32, 34, 185, 166, 196, 220, 199, 191, 180, 243, 181, 196, 32, 73, 68, 69, 163, 172, 185, 169,
      209, 167, 201, 250, 161, 162, 191, 170, 183, 197, 212, 180, 180, 250, 194, 235, 178, 206, 211, 235, 213, 223, 186,      205, 184, 246, 200, 203, 195, 226, 183, 209, 202, 185, 211, 195, 34, 44, 13, 10, 32, 32, 32, 32, 34, 99, 104, 97,
      110, 110, 101, 108, 73, 100, 34, 58, 32, 34, 86, 105, 115, 117, 97, 108, 83, 116, 117, 100, 105, 111, 46, 49, 55,
      46, 82, 101, 108, 101, 97, 115, 101, 34, 44, 13, 10, 32, 32, 32, 32, 34, 99, 104, 97, 110, 110, 101, 108, 85, 114,      105, 34, 58, 32, 34, 104, 116, 116, 112, 115, 58, 47, 47, 97, 107, 97, 46, 109, 115, 47, 118, 115, 47, 49, 55, 47,      114, 101, 108, 101, 97, 115, 101, 47, 99, 104, 97, 110, 110, 101, 108, 34, 44, 13, 10, 32, 32, 32, 32, 34, 101,
      110, 103, 105, 110, 101, 80, 97, 116, 104, 34, 58, 32, 34, 67, 58, 92, 92, 80, 114, 111, 103, 114, 97, 109, 32,
      70, 105, 108, 101, 115, 32, 40, 120, 56, 54, 41, 92, 92, 77, 105, 99, 114, 111, 115, 111, 102, 116, 32, 86, 105,
      115, 117, 97, 108, 32, 83, 116, 117, 100, 105, 111, 92, 92, 73, 110, 115, 116, 97, 108, 108, 101, 114, 92, 92,
      114, 101, 115, 111, 117, 114, 99, 101, 115, 92, 92, 97, 112, 112, 92, 92, 83, 101, 114, 118, 105, 99, 101, 72,
      117, 98, 92, 92, 83, 101, 114, 118, 105, 99, 101, 115, 92, 92, 77, 105, 99, 114, 111, 115, 111, 102, 116, 46, 86,
      105, 115, 117, 97, 108, 83, 116, 117, 100, 105, 111, 46, 83, 101, 116, 117, 112, 46, 83, 101, 114, 118, 105, 99,
      101, 34, 44, 13, 10, 32, 32, 32, 32, 34, 105, 110, 115, 116, 97, 108, 108, 101, 100, 67, 104, 97, 110, 110, 101,
      108, 85, 114, 105, 34, 58, 32, 34, 104, 116, 116, 112, 115, 58, 47, 47, 97, 107, 97, 46, 109, 115, 47, 118, 115,
      47, 49, 55, 47, 114, 101, 108, 101, 97, 115, 101, 47, 99, 104, 97, 110, 110, 101, 108, 34, 44, 13, 10, 32, 32, 32,      32, 34, 114, 101, 108, 101, 97, 115, 101, 78, 111, 116, 101, 115, 34, 58, 32, 34, 104, 116, 116, 112, 115, 58, 47,      47, 100, 111, 99, 115, 46, 109, 105, 99, 114, 111, 115, 111, 102, 116, 46, 99, 111, 109, 47, 101, 110, 45, 117,
      115, 47, 118, 105, 115, 117, 97, 108, 115, 116, 117, 100, 105, 111, 47, 114, 101, 108, 101, 97, 115, 101, 115, 47,      50, 48, 50, 50, 47, 114, 101, 108, 101, 97, 115, 101, 45, 110, 111, 116, 101, 115, 45, 118, 49, 55, 46, 50, 35,
      49, 55, 46, 50, 46, 50, 34, 44, 13, 10, 32, 32, 32, 32, 34, 116, 104, 105, 114, 100, 80, 97, 114, 116, 121, 78,
      111, 116, 105, 99, 101, 115, 34, 58, 32, 34, 104, 116, 116, 112, 115, 58, 47, 47, 103, 111, 46, 109, 105, 99, 114,      111, 115, 111, 102, 116, 46, 99, 111, 109, 47, 102, 119, 108, 105, 110, 107, 47, 63, 76, 105, 110, 107, 73, 100,
      61, 54, 54, 49, 50, 56, 56, 34, 44, 13, 10, 32, 32, 32, 32, 34, 117, 112, 100, 97, 116, 101, 68, 97, 116, 101, 34,      58, 32, 34, 50, 48, 50, 50, 45, 48, 53, 45, 51, 48, 84, 48, 57, 58, 50, 56, 58, 49, 55, 46, 54, 55, 56, 56, 53,
      53, 51, 90, 34, 44, 13, 10, 32, 32, 32, 32, 34, 99, 97, 116, 97, 108, 111, 103, 34, 58, 32, 123, 13, 10, 32, 32,
      32, 32, 32, 32, 34, 98, 117, 105, 108, 100, 66, 114, 97, 110, 99, 104, 34, 58, 32, 34, 100, 49, 55, 46, 50, 34,
      44, 13, 10, 32, 32, 32, 32, 32, 32, 34, 98, 117, 105, 108, 100, 86, 101, 114, 115, 105, 111, 110, 34, 58, 32, 34,
      49, 55, 46, 50, 46, 51, 50, 53, 49, 57, 46, 51, 55, 57, 34, 44, 13, 10, 32, 32, 32, 32, 32, 32, 34, 105, 100, 34,
      58, 32, 34, 86, 105, 115, 117, 97, 108, 83, 116, 117, 100, 105, 111, 47, 49, 55, 46, 50, 46, 50, 43, 51, 50, 53,
      49, 57, 46, 51, 55, 57, 34, 44, 13, 10, 32, 32, 32, 32, 32, 32, 34, 108, 111, 99, 97, 108, 66, 117, 105, 108, 100,      34, 58, 32, 34, 98, 117, 105, 108, 100, 45, 108, 97, 98, 34, 44, 13, 10, 32, 32, 32, 32, 32, 32, 34, 109, 97, 110,      105, 102, 101, 115, 116, 78, 97, 109, 101, 34, 58, 32, 34, 86, 105, 115, 117, 97, 108, 83, 116, 117, 100, 105,
      111, 34, 44, 13, 10, 32, 32, 32, 32, 32, 32, 34, 109, 97, 110, 105, 102, 101, 115, 116, 84, 121, 112, 101, 34, 58,      32, 34, 105, 110, 115, 116, 97, 108, 108, 101, 114, 34, 44, 13, 10, 32, 32, 32, 32, 32, 32, 34, 112, 114, 111,
      100, 117, 99, 116, 68, 105, 115, 112, 108, 97, 121, 86, 101, 114, 115, 105, 111, 110, 34, 58, 32, 34, 49, 55, 46,
      50, 46, 50, 34, 44, 13, 10, 32, 32, 32, 32, 32, 32, 34, 112, 114, 111, 100, 117, 99, 116, 76, 105, 110, 101, 34,
      58, 32, 34, 68, 101, 118, 49, 55, 34, 44, 13, 10, 32, 32, 32, 32, 32, 32, 34, 112, 114, 111, 100, 117, 99, 116,
      76, 105, 110, 101, 86, 101, 114, 115, 105, 111, 110, 34, 58, 32, 34, 50, 48, 50, 50, 34, 44, 13, 10, 32, 32, 32,
      32, 32, 32, 34, 112, 114, 111, 100, 117, 99, 116, 77, 105, 108, 101, 115, 116, 111, 110, 101, 34, 58, 32, 34, 82,
      84, 87, 34, 44, 13, 10, 32, 32, 32, 32, 32, 32, 34, 112, 114, 111, 100, 117, 99, 116, 77, 105, 108, 101, 115, 116,      111, 110, 101, 73, 115, 80, 114, 101, 82, 101, 108, 101, 97, 115, 101, 34, 58, 32, 34, 70, 97, 108, 115, 101, 34,
      44, 13, 10, 32, 32, 32, 32, 32, 32, 34, 112, 114, 111, 100, 117, 99, 116, 78, 97, 109, 101, 34, 58, 32, 34, 86,
      105, 115, 117, 97, 108, 32, 83, 116, 117, 100, 105, 111, 34, 44, 13, 10, 32, 32, 32, 32, 32, 32, 34, 112, 114,
      111, 100, 117, 99, 116, 80, 97, 116, 99, 104, 86, 101, 114, 115, 105, 111, 110, 34, 58, 32, 34, 50, 34, 44, 13,
      10, 32, 32, 32, 32, 32, 32, 34, 112, 114, 111, 100, 117, 99, 116, 80, 114, 101, 82, 101, 108, 101, 97, 115, 101,
      77, 105, 108, 101, 115, 116, 111, 110, 101, 83, 117, 102, 102, 105, 120, 34, 58, 32, 34, 49, 46, 48, 34, 44, 13,
      10, 32, 32, 32, 32, 32, 32, 34, 112, 114, 111, 100, 117, 99, 116, 83, 101, 109, 97, 110, 116, 105, 99, 86, 101,
      114, 115, 105, 111, 110, 34, 58, 32, 34, 49, 55, 46, 50, 46, 50, 43, 51, 50, 53, 49, 57, 46, 51, 55, 57, 34, 44,
      13, 10, 32, 32, 32, 32, 32, 32, 34, 114, 101, 113, 117, 105, 114, 101, 100, 69, 110, 103, 105, 110, 101, 86, 101,
      114, 115, 105, 111, 110, 34, 58, 32, 34, 51, 46, 50, 46, 50, 49, 52, 56, 46, 50, 54, 53, 52, 48, 34, 13, 10, 32,
      32, 32, 32, 125, 44, 13, 10, 32, 32, 32, 32, 34, 112, 114, 111, 112, 101, 114, 116, 105, 101, 115, 34, 58, 32,
      123, 13, 10, 32, 32, 32, 32, 32, 32, 34, 99, 97, 109, 112, 97, 105, 103, 110, 73, 100, 34, 58, 32, 34, 50, 48, 51,      48, 58, 100, 102, 102, 54, 48, 99, 102, 51, 45, 52, 100, 100, 98, 45, 52, 49, 49, 100, 45, 98, 50, 99, 56, 45, 99,      98, 51, 102, 51, 50, 100, 97, 57, 101, 98, 50, 34, 44, 13, 10, 32, 32, 32, 32, 32, 32, 34, 99, 104, 97, 110, 110,
      101, 108, 77, 97, 110, 105, 102, 101, 115, 116, 73, 100, 34, 58, 32, 34, 86, 105, 115, 117, 97, 108, 83, 116, 117,      100, 105, 111, 46, 49, 55, 46, 82, 101, 108, 101, 97, 115, 101, 47, 49, 55, 46, 50, 46, 50, 43, 51, 50, 53, 49,
      57, 46, 51, 55, 57, 34, 44, 13, 10, 32, 32, 32, 32, 32, 32, 34, 110, 105, 99, 107, 110, 97, 109, 101, 34, 58, 32,
      34, 34, 44, 13, 10, 32, 32, 32, 32, 32, 32, 34, 115, 101, 116, 117, 112, 69, 110, 103, 105, 110, 101, 70, 105,
      108, 101, 80, 97, 116, 104, 34, 58, 32, 34, 67, 58, 92, 92, 80, 114, 111, 103, 114, 97, 109, 32, 70, 105, 108,
      101, 115, 32, 40, 120, 56, 54, 41, 92, 92, 77, 105, 99, 114, 111, 115, 111, 102, 116, 32, 86, 105, 115, 117, 97,
      108, 32, 83, 116, 117, 100, 105, 111, 92, 92, 73, 110, 115, 116, 97, 108, 108, 101, 114, 92, 92, 115, 101, 116,
      117, 112, 46, 101, 120, 101, 34, 13, 10, 32, 32, 32, 32, 125, 13, 10, 32, 32, 125, 13, 10, 93, 13, 10]
 

这个错误已提交issues:

https://github.com/flutter/flutter/issues/102451 

目前解决方案:

替换vswhere.exe,替换C:\Program Files (x86)\Microsoft Visual Studio\Installer文件夹里面的vswhere.exe。

下载地址:

Releases · microsoft/vswhere · GitHub

Invalid File Type Total Count: 0 License Not Compatible Total Count: 0 License Header Invalid Total Count: 65 Name: License Header Invalid Content: NoLicenseHeader Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/.metadata Name: License Header Invalid Content: NoLicenseHeader Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/example/pubspec.lock Name: License Header Invalid Content: NoLicenseHeader Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/example/ohos/entry/src/ohosTest/ets/test/List.test.ets Name: License Header Invalid Content: NoLicenseHeader Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/example/pubspec.yaml Name: License Header Invalid Content: NoLicenseHeader Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/example/ios/Runner.xcworkspace/contents.xcworkspacedata Name: License Header Invalid Content: NoLicenseHeader Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/ios/Classes/EventChannelHandler.swift Name: License Header Invalid Content: NoLicenseHeader Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/test/flutter_traceroute_method_channel_test.dart Name: License Header Invalid Content: NoLicenseHeader Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/analysis_options.yaml Name: License Header Invalid Content: NoLicenseHeader Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/example/android/app/src/debug/AndroidManifest.xml Name: License Header Invalid Content: NoLicenseHeader Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/example/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist Name: License Header Invalid Content: NoLicenseHeader Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/example/ohos/entry/src/ohosTest/ets/testability/TestAbility.ets Name: License Header Invalid Content: NoLicenseHeader Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/ios/Classes/FlutterTraceroutePlugin.h Name: License Header Invalid Content: NoLicenseHeader Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/test/flutter_traceroute_test.dart Name: License Header Invalid Content: NoLicenseHeader Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/pubspec.yaml Name: License Header Invalid Content: NoLicenseHeader Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/example/ios/Runner/Base.lproj/LaunchScreen.storyboard Name: License Header Invalid Content: NoLicenseHeader Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/example/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings Name: License Header Invalid Content: NoLicenseHeader Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/example/ohos/entry/src/ohosTest/ets/testability/pages/Index.ets Name: License Header Invalid Content: NoLicenseHeader Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/ios/Classes/FlutterTraceroutePlugin.m Name: License Header Invalid Content: NoLicenseHeader Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/android/src/main/AndroidManifest.xml Name: License Header Invalid Content: NoLicenseHeader Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/example/android/app/src/main/AndroidManifest.xml Name: License Header Invalid Content: NoLicenseHeader Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/example/ios/Runner/Base.lproj/Main.storyboard Name: License Header Invalid Content: NoLicenseHeader Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/ios/Classes/SwiftFlutterTraceroutePlugin.swift Name: License Header Invalid Content: NoLicenseHeader Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/android/src/main/kotlin/com/traceroute/flutter_traceroute/FlutterTraceroutePlugin.kt Name: License Header Invalid Content: NoLicenseHeader Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/example/android/app/src/main/kotlin/com/traceroute/flutter_traceroute_example/MainActivity.kt Name: License Header Invalid Content: NoLicenseHeader Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/example/ios/Podfile Name: License Header Invalid Content: NoLicenseHeader Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/example/test/widget_test.dart Name: License Header Invalid Content: NoLicenseHeader Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/android/src/main/kotlin/com/traceroute/flutter_traceroute/TracerouteStreamHandler.kt Name: License Header Invalid Content: NoLicenseHeader Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/example/ios/Podfile.lock Name: License Header Invalid Content: NoLicenseHeader Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/example/ohos/entry/src/ohosTest/ets/testrunner/OpenHarmonyTestRunner.ts Name: License Header Invalid Content: NoLicenseHeader Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/ohos/index.ets Name: License Header Invalid Content: NoLicenseHeader Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/example/ios/Flutter/AppFrameworkInfo.plist Name: License Header Invalid Content: NoLicenseHeader Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/example/ios/Runner.xcodeproj/project.pbxproj Name: License Header Invalid Content: NoLicenseHeader Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/example/lib/main.dart Name: License Header Invalid Content: NoLicenseHeader Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/lib/flutter_traceroute.dart Name: License Header Invalid Content: NoLicenseHeader Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/example/android/app/src/main/res/values/styles.xml Name: License Header Invalid Content: NoLicenseHeader Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/example/ios/Flutter/Debug.xcconfig Name: License Header Invalid Content: NoLicenseHeader Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/example/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata Name: License Header Invalid Content: NoLicenseHeader Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/example/lib/src/services/platform_service.dart Name: License Header Invalid Content: NoLicenseHeader Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/lib/flutter_traceroute_method_channel.dart Name: License Header Invalid Content: NoLicenseHeader Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/example/ios/Flutter/Release.xcconfig Name: License Header Invalid Content: NoLicenseHeader Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist Name: License Header Invalid Content: NoLicenseHeader Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/lib/flutter_traceroute_platform_interface.dart Name: License Header Invalid Content: NoLicenseHeader Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/example/android/app/src/main/res/drawable/launch_background.xml Name: License Header Invalid Content: NoLicenseHeader Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/example/android/app/src/main/res/values-night/styles.xml Name: License Header Invalid Content: NoLicenseHeader Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings Name: License Header Invalid Content: NoLicenseHeader Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/example/lib/src/ui/trace_screen.dart Name: License Header Invalid Content: NoLicenseHeader Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/lib/flutter_traceroute_web.dart Name: License Header Invalid Content: NoLicenseHeader Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/ohos/src/main/ets/components/plugin/FlutterTraceroutePlugin.ets Name: License Header Invalid Content: NoLicenseHeader Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/example/ios/Runner/AppDelegate.swift Name: License Header Invalid Content: NoLicenseHeader Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/lib/src/models/traceroute_enum.dart Name: License Header Invalid Content: NoLicenseHeader Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/example/android/app/src/main/res/drawable-v21/launch_background.xml Name: License Header Invalid Content: NoLicenseHeader Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/example/ios/Runner/Info.plist Name: License Header Invalid Content: NoLicenseHeader Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/lib/src/models/traceroute_step.dart Name: License Header Invalid Content: NoLicenseHeader Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/example/ios/Runner/Runner-Bridging-Header.h Name: License Header Invalid Content: NoLicenseHeader Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme Name: License Header Invalid Content: NoLicenseHeader Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/example/ohos/entry/src/main/ets/entryability/EntryAbility.ets Name: License Header Invalid Content: NoLicenseHeader Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/lib/src/models/transformers/tracestep_transformer.dart Name: License Header Invalid Content: NoLicenseHeader Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/example/analysis_options.yaml Name: License Header Invalid Content: NoLicenseHeader Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/example/android/app/src/profile/AndroidManifest.xml Name: License Header Invalid Content: NoLicenseHeader Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/lib/src/models/transformers/tracestep_transformer_android.dart Name: License Header Invalid Content: NoLicenseHeader Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/example/ohos/hvigorconfig.ts Name: License Header Invalid Content: NoLicenseHeader Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/example/ohos/entry/src/main/ets/pages/Index.ets Name: License Header Invalid Content: NoLicenseHeader Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/example/ohos/entry/src/ohosTest/ets/test/Ability.test.ets Name: License Header Invalid Content: InvalidLicense Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/ios/flutter_traceroute.podspec Name: License Header Invalid Content: NoLicenseHeader Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/lib/src/models/transformers/tracestep_transformer_ios.dart Copyright Header Invalid Total Count: 65 Name: Copyright Header Invalid Content: NULL Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/.metadata Name: Copyright Header Invalid Content: NULL Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/example/pubspec.lock Name: Copyright Header Invalid Content: NULL Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/example/ohos/entry/src/ohosTest/ets/test/List.test.ets Name: Copyright Header Invalid Content: NULL Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/example/pubspec.yaml Name: Copyright Header Invalid Content: NULL Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/example/ios/Runner.xcworkspace/contents.xcworkspacedata Name: Copyright Header Invalid Content: NULL Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/ios/Classes/EventChannelHandler.swift Name: Copyright Header Invalid Content: NULL Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/test/flutter_traceroute_method_channel_test.dart Name: Copyright Header Invalid Content: NULL Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/analysis_options.yaml Name: Copyright Header Invalid Content: NULL Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/example/android/app/src/debug/AndroidManifest.xml Name: Copyright Header Invalid Content: NULL Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/example/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist Name: Copyright Header Invalid Content: NULL Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/example/ohos/entry/src/ohosTest/ets/testability/TestAbility.ets Name: Copyright Header Invalid Content: NULL Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/ios/Classes/FlutterTraceroutePlugin.h Name: Copyright Header Invalid Content: NULL Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/test/flutter_traceroute_test.dart Name: Copyright Header Invalid Content: NULL Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/pubspec.yaml Name: Copyright Header Invalid Content: NULL Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/example/ios/Runner/Base.lproj/LaunchScreen.storyboard Name: Copyright Header Invalid Content: NULL Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/example/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings Name: Copyright Header Invalid Content: NULL Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/example/ohos/entry/src/ohosTest/ets/testability/pages/Index.ets Name: Copyright Header Invalid Content: NULL Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/ios/Classes/FlutterTraceroutePlugin.m Name: Copyright Header Invalid Content: NULL Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/android/src/main/AndroidManifest.xml Name: Copyright Header Invalid Content: NULL Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/example/android/app/src/main/AndroidManifest.xml Name: Copyright Header Invalid Content: NULL Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/example/ios/Runner/Base.lproj/Main.storyboard Name: Copyright Header Invalid Content: NULL Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/ios/Classes/SwiftFlutterTraceroutePlugin.swift Name: Copyright Header Invalid Content: NULL Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/android/src/main/kotlin/com/traceroute/flutter_traceroute/FlutterTraceroutePlugin.kt Name: Copyright Header Invalid Content: NULL Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/example/android/app/src/main/kotlin/com/traceroute/flutter_traceroute_example/MainActivity.kt Name: Copyright Header Invalid Content: NULL Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/example/ios/Podfile Name: Copyright Header Invalid Content: NULL Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/example/test/widget_test.dart Name: Copyright Header Invalid Content: NULL Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/android/src/main/kotlin/com/traceroute/flutter_traceroute/TracerouteStreamHandler.kt Name: Copyright Header Invalid Content: NULL Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/example/ios/Podfile.lock Name: Copyright Header Invalid Content: NULL Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/example/ohos/entry/src/ohosTest/ets/testrunner/OpenHarmonyTestRunner.ts Name: Copyright Header Invalid Content: NULL Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/ohos/index.ets Name: Copyright Header Invalid Content: NULL Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/example/ios/Flutter/AppFrameworkInfo.plist Name: Copyright Header Invalid Content: NULL Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/example/ios/Runner.xcodeproj/project.pbxproj Name: Copyright Header Invalid Content: NULL Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/example/lib/main.dart Name: Copyright Header Invalid Content: NULL Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/lib/flutter_traceroute.dart Name: Copyright Header Invalid Content: NULL Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/example/android/app/src/main/res/values/styles.xml Name: Copyright Header Invalid Content: NULL Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/example/ios/Flutter/Debug.xcconfig Name: Copyright Header Invalid Content: NULL Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/example/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata Name: Copyright Header Invalid Content: NULL Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/example/lib/src/services/platform_service.dart Name: Copyright Header Invalid Content: NULL Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/lib/flutter_traceroute_method_channel.dart Name: Copyright Header Invalid Content: NULL Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/example/ios/Flutter/Release.xcconfig Name: Copyright Header Invalid Content: NULL Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist Name: Copyright Header Invalid Content: NULL Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/lib/flutter_traceroute_platform_interface.dart Name: Copyright Header Invalid Content: NULL Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/example/android/app/src/main/res/drawable/launch_background.xml Name: Copyright Header Invalid Content: NULL Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/example/android/app/src/main/res/values-night/styles.xml Name: Copyright Header Invalid Content: NULL Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/example/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings Name: Copyright Header Invalid Content: NULL Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/example/lib/src/ui/trace_screen.dart Name: Copyright Header Invalid Content: NULL Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/lib/flutter_traceroute_web.dart Name: Copyright Header Invalid Content: NULL Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/ohos/src/main/ets/components/plugin/FlutterTraceroutePlugin.ets Name: Copyright Header Invalid Content: NULL Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/example/ios/Runner/AppDelegate.swift Name: Copyright Header Invalid Content: NULL Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/lib/src/models/traceroute_enum.dart Name: Copyright Header Invalid Content: NULL Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/example/android/app/src/main/res/drawable-v21/launch_background.xml Name: Copyright Header Invalid Content: NULL Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/example/ios/Runner/Info.plist Name: Copyright Header Invalid Content: NULL Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/lib/src/models/traceroute_step.dart Name: Copyright Header Invalid Content: NULL Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/example/ios/Runner/Runner-Bridging-Header.h Name: Copyright Header Invalid Content: NULL Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/example/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme Name: Copyright Header Invalid Content: NULL Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/example/ohos/entry/src/main/ets/entryability/EntryAbility.ets Name: Copyright Header Invalid Content: NULL Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/lib/src/models/transformers/tracestep_transformer.dart Name: Copyright Header Invalid Content: NULL Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/example/analysis_options.yaml Name: Copyright Header Invalid Content: NULL Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/example/android/app/src/profile/AndroidManifest.xml Name: Copyright Header Invalid Content: NULL Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/lib/src/models/transformers/tracestep_transformer_android.dart Name: Copyright Header Invalid Content: NULL Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/example/ohos/hvigorconfig.ts Name: Copyright Header Invalid Content: NULL Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/example/ohos/entry/src/main/ets/pages/Index.ets Name: Copyright Header Invalid Content: NULL Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/example/ohos/entry/src/ohosTest/ets/test/Ability.test.ets Name: Copyright Header Invalid Content: NULL Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/ios/flutter_traceroute.podspec Name: Copyright Header Invalid Content: NULL Line: 0 Project: flutter_traceroute_test-main File: C:/Users/ywx1452690/Desktop/flutter_traceroute_test-main/lib/src/models/transformers/tracestep_transformer_ios.dart No License File Total Count: 0 No Readme.OpenSource Total Count: 0 No Readme Total Count: 0 Import Invalid Total Count: 0 Redundant License File Total Count: 0 帮我清空上面的问题: <?xml version="1.0" encoding="UTF-8"?> <configuration> <oatconfig> <filefilterlist> <filefilter desc="Filters for compatibility,license header policies" name="copyrightPolicyFilter"> <filteritem desc="hvigor配置文件,DevEco Studio自动生成,不手动修改" name="hvigorfile.*" type="filename"/> <filteritem desc="hvigor配置文件,DevEco Studio自动生成,不手动修改" name="*.json5" type="filename"/> <filteritem desc="版权文件,不添加版权头" name="LICENSE" type="filename"/> <filteritem desc="NOTICE文件,不添加版权头" name="NOTICE" type="filename"/> </filefilter> <filefilter desc="Filters for compatibility,license header policies" name="defaultPolicyFilter"> <filteritem desc="hvigor配置文件,DevEco Studio自动生成,不手动修改" name="hvigorfile.*" type="filename"/> <filteritem desc="hvigor配置文件,DevEco Studio自动生成,不手动修改" name="*.json5" type="filename"/> <filteritem desc="版权文件,不添加版权头" name="LICENSE" type="filename"/> <filteritem desc="NOTICE文件,不添加版权头" name="NOTICE" type="filename"/> </filefilter> <filefilter desc="Filters for binary file policies" name="binaryFileTypePolicyFilter"> <filteritem desc="jpg图片格式文件,用于展示示例" name="*.jpg" type="filename"/> <filteritem desc="png图片格式文件,用于展示示例" name="*.png" type="filename"/> <filteritem desc="gif图片格式文件,用于展示示例" name="*.gif" type="filename"/> <filteritem desc="hvigor配置文件" name="*.json5" type="filename"/> <filteritem desc="依赖本地包" name="*.har" type="filename"/> </filefilter> </filefilterlist> <policylist> <policy desc="" name="projectPolicy"> <policyitem desc="继承源组件MIT 许可证。" name="MIT" path=".*" type="license"/> </policy> </policylist> </oatconfig> </configuration>
最新发布
09-25
<think> 我们正在处理两个任务: 任务1:解决项目中65个文件的许可证头和版权头无效问题(即清除或修正这些文件的开头的许可证和版权声明) 任务2:对给定的XML配置文件进行清空或修改操作(具体操作未说明,但根据上下文可能是清空某些配置) 由于问题中没有提供具体的XML配置文件路径和内容,也没有说明如何修改,因此我们只能提供一般性指导。 对于任务1: 通常,许可证头和版权头是添加到源文件开头的注释块。如果这些头无效(可能是格式错误、位置错误或内容错误),我们需要移除或替换它们。 由于有65个文件,手动操作效率低,建议使用脚本批量处理。 步骤: 1. 确定哪些文件需要修改(例如,所有.dart文件,或者其他类型的文件)。 2. 确定无效许可证头和版权头的具体模式(例如,以什么样的注释开始,包含什么关键字)。 3. 编写脚本(如使用sed、awk或Python)来移除或替换这些头。 示例:假设无效的许可证头以多行注释形式存在,以"/*"开始,以"*/"结束,并且包含"LICENSE"或"Copyright"关键字。 我们可以使用sed命令(在Linux或macOS上)来移除它们: 注意:在操作前务必备份文件! 例如,使用sed删除从包含"/*"开始到包含"*/"结束的注释块,并且这个注释块包含"Copyright"或"LICENSE"关键字: 但是sed默认是逐行处理,对于多行匹配处理较复杂。我们可以使用以下方式: 方法1:使用sed的跨行匹配(但不同平台sed版本支持不同,GNU sed支持,macOS的BSD sed可能不支持) 方法2:使用perl或python脚本 这里提供一个Python脚本的示例,用于删除以"/*"开头,以"*/"结尾的注释块,并且其中包含"Copyright"或"LICENSE"字样: ```python import os import re # 定义要处理的目录,这里假设是当前目录 directory = '.' # 定义匹配多行注释的正则表达式,注意:这里使用非贪婪匹配 pattern = re.compile(r'/\*.*?(Copyright|LICENSE).*?\*/', re.DOTALL) for root, dirs, files in os.walk(directory): for file in files: if file.endswith('.dart'): # 只处理.dart文件,根据项目实际情况调整 file_path = os.path.join(root, file) with open(file_path, 'r') as f: content = f.read() # 替换掉匹配的注释块 new_content = pattern.sub('', content, count=1) # 只替换第一个匹配(通常头在文件开头) # 如果内容有变化,则写回文件 if new_content != content: with open(file_path, 'w') as f: f.write(new_content) ``` 注意:这个脚本会删除第一个包含"Copyright"或"LICENSE"的多行注释块。但是,有些文件可能有多个注释块,而我们只想删除开头的那个。此外,有些文件的头可能不是多行注释(比如使用//的单行注释),则需要调整正则表达式。 因此,我们需要根据实际的头格式来调整脚本。 对于任务2: 我们需要知道具体的XML配置文件路径和需要做的修改。如果是要清空整个文件,直接覆盖写入空内容即可。如果是删除某些节点,则需要使用XML解析工具。 假设我们有一个XML文件,需要清空某个标签内的内容,比如清空<configuration>标签内的所有子节点,但保留<configuration>标签本身。 使用Python的xml.etree.ElementTree模块: ```python import xml.etree.ElementTree as ET # 假设文件名为config.xml tree = ET.parse('config.xml') root = tree.getroot() # 找到configuration标签,并清空其所有子节点 config_elem = root.find('configuration') if config_elem is not None: config_elem.clear() # 清空所有子节点 # 保存修改 tree.write('config.xml') ``` 但是,如果是要清空整个文件的内容(即变成空文件),则很简单: ```python with open('config.xml', 'w') as f: f.write('') ``` 由于问题中没有具体说明,我们只能提供这些可能的方案。 总结: 1. 对于许可证头和版权头的移除,需要根据实际文件格式编写脚本批量处理。 2. 对于XML配置文件的修改,需要明确具体操作。 如果用户能提供更多细节(例如无效头的具体示例,XML配置文件的结构和需要做的修改),我们可以提供更具体的脚本。 </think> 基于您的需求,我将分别解决两个任务:处理无效许可证/版权头和操作XML配置文件。以下是具体解决方案: ### 任务1:解决65个文件的许可证头和版权头无效问题 建议使用自动化脚本批量处理,以下提供两种解决方案: #### 方案A:使用Python脚本(推荐) ```python import os import re # 配置参数 PROJECT_ROOT = 'flutter_traceroute_test-main' # 项目根目录 INVALID_HEADER_PATTERNS = [ r'^\/\/\s*Copyright.*?\n', # 匹配// Copyright...格式 r'^\/\*\!\s*license.*?\*\/\s*\n', # 匹配/*! license...*/格式 r'^#.*?license.*?\n' # 匹配# license...格式 ] def remove_invalid_headers(file_path): with open(file_path, 'r+') as f: content = f.read() original_length = len(content) # 移除所有匹配的无效头 for pattern in INVALID_HEADER_PATTERNS: content = re.sub(pattern, '', content, flags=re.IGNORECASE|re.DOTALL) # 重写文件并截断 if len(content) != original_length: f.seek(0) f.write(content) f.truncate() # 遍历项目文件 for root, dirs, files in os.walk(PROJECT_ROOT): for file in files: if file.endswith(('.dart', '.kt', '.java', '.swift')): # 根据实际扩展名调整 remove_invalid_headers(os.path.join(root, file)) ``` #### 方案B:命令行批量处理(Linux/macOS) ```bash # 移除Dart文件中的无效头 find flutter_traceroute_test-main -name "*.dart" -exec sed -i '' '/\/\/.*\(license\|copyright\)/Id' {} + # 移除Android文件中的无效头 find flutter_traceroute_test-main -name "*.kt" -exec sed -i '' '/\/\/.*\(license\|copyright\)/Id' {} + find flutter_traceroute_test-main -name "*.java" -exec sed -i '' '/\/\/.*\(license\|copyright\)/Id' {} + # 移除iOS文件中的无效头 find flutter_traceroute_test-main -name "*.swift" -exec sed -i '' '/\/\/.*\(license\|copyright\)/Id' {} + ``` ### 任务2:XML配置文件操作 根据常见需求,提供三类XML操作方案: #### 方案1:清空整个XML文件 ```python def clear_xml_file(file_path): with open(file_path, 'w') as f: f.write('<?xml version="1.0" encoding="UTF-8"?>\n<root/>') # 最小化结构 # 如需完全清空:f.write('') ``` #### 方案2:移除特定节点(示例:移除所有<license>节点) ```python import xml.etree.ElementTree as ET def remove_xml_elements(file_path, tag_name): tree = ET.parse(file_path) root = tree.getroot() # 移除所有指定标签 for element in root.findall(f'.//{tag_name}'): root.remove(element) tree.write(file_path, encoding='utf-8', xml_declaration=True) # 使用示例 remove_xml_elements('config.xml', 'license') ``` #### 方案3:修改特定节点值 ```python def update_xml_values(file_path, updates_dict): tree = ET.parse(file_path) root = tree.getroot() for xpath, new_value in updates_dict.items(): element = root.find(xpath) if element is not None: element.text = new_value tree.write(file_path, encoding='utf-8', xml_declaration=True) # 使用示例 updates = { './/version': '3.0.0', './/author/name': 'New Maintainer' } update_xml_values('config.xml', updates) ``` ### 操作前重要提示 1. **备份文件**:执行前务必备份项目 ```bash cp -r flutter_traceroute_test-main flutter_traceroute_test-main-BACKUP ``` 2. **验证模式**:先在单个文件测试脚本效果 3. **许可证合规**:移除后需确保符合[许可证要求](https://opensource.org/licenses) 4. **XML结构调整**:复杂XML操作建议使用`lxml`库替代标准库 > **注意事项**: > - 许可证头通常包含法律声明,移除前需确认法律允许 > - XML修改可能影响应用功能,建议配合单元测试 > - Flutter项目特别注意`pubspec.yaml`中的许可证声明[^1] 如果需要针对具体文件格式或XML结构进行定制,请提供示例文件片段。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值