flutter 舊有V1項目升級V2

flutter 舊有V1項目升級V2

提示 

Warning
           ──────────────────────────────────────────────────────────────────────────────
           Your Flutter application is created using an older version of the Android
           embedding. It's being deprecated in favor of Android embedding v2. Follow the
           steps at

           https://flutter.dev/go/android-project-migration

           to migrate your project.

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

https://my.oschina.net/zengfr

原因 :

D:\flutter\packages\flutter_tools\lib\src\project.dart  返回V1 

AndroidEmbeddingVersion getEmbeddingVersion() 
AndroidEmbeddingVersion getEmbeddingVersion() {
    if (isModule) {
      // A module type's Android project is used in add-to-app scenarios and
      // only supports the V2 embedding.
      return AndroidEmbeddingVersion.v2;
    }
    if (appManifestFile == null || !appManifestFile.existsSync()) {
      return AndroidEmbeddingVersion.v1;
    }
    XmlDocument document;
    try {
      document = XmlDocument.parse(appManifestFile.readAsStringSync());
    } on XmlParserException {
      throwToolExit('Error parsing $appManifestFile '
                    'Please ensure that the android manifest is a valid XML document and try again.');
    } on FileSystemException {
      throwToolExit('Error reading $appManifestFile even though it exists. '
                    'Please ensure that you have read permission to this file and try again.');
    }
    for (final XmlElement metaData in document.findAllElements('meta-data')) {
      final String name = metaData.getAttribute('android:name');
      if (name == 'flutterEmbedding') {
        final String embeddingVersionString = metaData.getAttribute('android:value');
        if (embeddingVersionString == '1') {
          return AndroidEmbeddingVersion.v1;
        }
        if (embeddingVersionString == '2') {
          return AndroidEmbeddingVersion.v2;
        }
      }
    }
    return AndroidEmbeddingVersion.v1;
  }
}

解決: 

1\ android dir create file empty build.gradle
2\android\app\src\main create file AndroidManifest.xml and add The following

<manifest>
	<application>
		<meta-data android:name="flutterEmbedding" android:value="2" />
	</application>
</manifest>

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章