英文:
Flutter package error: This app is using a deprecated version of the Android embedding
问题
我创建了一个新的包,但当我运行 flutter pub get
时出现以下错误:
This app is using a deprecated version of the Android embedding.
To avoid unexpected runtime failures, or future build failures, try to migrate this app to the V2 embedding.
Take a look at the docs for migrating an app: https://github.com/flutter/flutter/wiki/Upgrading-pre-1.12-Android-projects
The plugin `package_info_plus` requires your app to be migrated to the Android embedding v2. Follow the steps on the migration doc above and re-run this command.
但这是一个包而不是一个应用程序。
我尝试按照 https://github.com/flutter/flutter/wiki/Upgrading-pre-1.12-Android-projects 中的步骤进行操作,但我的 android 文件夹只包含以下内容:
// android/local.properties
sdk.dir=/Users/USERNAME/Library/Android/sdk
flutter.sdk=/Users/PATH_TO_FLUTTER/flutter
和
// android/src/main/java/io/flutter/plugins/GeneratedPluginRegistrant.java
package io.flutter.plugins;
import io.flutter.plugin.common.PluginRegistry;
/**
* Generated file. Do not edit.
*/
public final class GeneratedPluginRegistrant {
public static void registerWith(PluginRegistry registry) {
if (alreadyRegisteredWith(registry)) {
return;
}
}
private static boolean alreadyRegisteredWith(PluginRegistry registry) {
final String key = GeneratedPluginRegistrant.class.getCanonicalName();
if (registry.hasPlugin(key)) {
return true;
}
registry.registrarFor(key);
return false;
}
}
我该如何解决这个问题?
英文:
I've created a new package but when I run flutter pub get
this error:
This app is using a deprecated version of the Android embedding.
To avoid unexpected runtime failures, or future build failures, try to migrate this app to the V2 embedding.
Take a look at the docs for migrating an app: https://github.com/flutter/flutter/wiki/Upgrading-pre-1.12-Android-projects
The plugin `package_info_plus` requires your app to be migrated to the Android embedding v2. Follow the steps on the migration doc above and re-run this command.
But it's a package and not an app.
I tried following https://github.com/flutter/flutter/wiki/Upgrading-pre-1.12-Android-projects but my android folder only contains:
// android/local.properties
sdk.dir=/Users/USERNAME/Library/Android/sdk
flutter.sdk=/Users/PATH_TO_FLUTTER/flutter
and
// android/src/main/java/io/flutter/plugins/GeneratedPluginRegistrant.java
package io.flutter.plugins;
import io.flutter.plugin.common.PluginRegistry;
/**
* Generated file. Do not edit.
*/
public final class GeneratedPluginRegistrant {
public static void registerWith(PluginRegistry registry) {
if (alreadyRegisteredWith(registry)) {
return;
}
}
private static boolean alreadyRegisteredWith(PluginRegistry registry) {
final String key = GeneratedPluginRegistrant.class.getCanonicalName();
if (registry.hasPlugin(key)) {
return true;
}
registry.registrarFor(key);
return false;
}
}
How do I resolve this?
答案1
得分: 3
如果您正在使用Flutter Package(而不是插件/应用程序),您只需要删除以下特定于平台的文件夹:
android ios linux macos windows
之后运行以下两个命令:
flutter clean
flutter pub get
问题解决了!!
解释
这些文件夹对于Flutter包通常不需要,因为包通常不包含本地或特定于平台的代码。因此,可以安全地删除这些文件夹以避免Android嵌入警告。
英文:
if you are working on Flutter Package (not plugin/ app)
All you need to do is delete the platform specific folders which are:
> android ios linux macos windows
after that run these two commands
flutter clean
flutter pub get
Problem Solved!!
explanation
These folders are not required by the flutter packages as packages don't usually include native or platform specific code. So it is safe to remove these folders to avoide the Android Embedding warnings.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论