web-dev-qa-db-fra.com

Obtenir une erreur lors de l'ajout de shared_preferences à l'application Flutter

J'ai créé un nouveau projet de flottement avec le support androidx et en essayant d'ajouter shared_preferences 0.5.4 + 3. quand j'appelle la commande get. il donne un message comme le plugin shared_preferences nécessite que votre application soit migrée vers Android incorporant la v2. Suivez les étapes https://flutter.dev/go/Android-project-migration et réexécutez cette commande.

Lorsque je fais les changements décrits ci-dessus, l'application ne se lance pas et donne une erreur comme ci-dessous.

.pub-cache/hosted/pub.dartlang.org/shared_preferences-0.5.4+3/Android/src/main/Java/io/flutter/plugins/sharedpreferences/SharedPreferencesPlugin.Java:25: warning: [deprecation] getFlutterEngine() in FlutterPluginBinding has been deprecated
    setupChannel(binding.getFlutterEngine().getDartExecutor(), binding.getApplicationContext());
2
Suresh

Modifiez ou ajoutez simplement votre fichier pubspec.yaml

shared_preferences: ^0.5.3+5
3
Ashique Valanchery

shared_preferences: ^ 0.5.6

  1. Installer OpenJDK11U-jdk_x64_windows_hotspot_11.0.6_10.msi.
  2. Exécuter flutter build apk --release

Ça marche pour moi.

Happy Coding !!!

1
sweetnandha cse

Rétablissez votre version de share_preference en shared_preferences: '0.5.1 + 2' cela fonctionnera

0
Subaharan Vel

Ouvrez Android/app/src/main/Java/[your.package.name] /MainActivity.Java. Changer le code existant

package [your.package.name];
import Android.os.Bundle;
import io.flutter.app.FlutterActivity;
import io.flutter.plugins.GeneratedPluginRegistrant;
public class MainActivity extends FlutterActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
GeneratedPluginRegistrant.registerWith(this);
}}

à

package [your.package.name];
import io.flutter.embedding.Android.FlutterActivity;
public class MainActivity extends FlutterActivity { }

Ouvrez Android/app/src/main/AndroidManifest.xml. Supprimez toutes les balises avec la clé Android: name = "io.flutter.app.Android.SplashScreenUntilFirstFrame". Ajouter une nouvelle balise sous avec contenu

<meta-data
Android:name="flutterEmbedding"
Android:value="2" />

Votre application devrait toujours être construite normalement (par exemple via flutter build apk), mais vous utilisez maintenant les nouvelles classes Android.

0
Subaharan Vel