Ошибка Flutter после установки зависимости шифрования

#flutter #dart #web #encryption #argon2-ffi

Вопрос:

Я разрабатываю простое приложение, и на стороне аутентификации мне нужно использовать пакет шифрования для шифрования токенов jwt, но с тех пор, как я установил зависимость шифрования, flutter теперь выдает мне эту ошибку:

     flutter pub add encrypt Launching libmain.dart on Chrome in debug mode...
    flutter/.pub-cache/hosted/pub.dartlang.org/pointycastle-3.1.3/lib/key_derivators/argon2.dart:42:27:
Error: The integer literal 0xFFFFFFFFFFFFFFFF can't be represented exactly in JavaScript.
    Try changing the literal to something that can be represented in Javascript.
    In Javascript 0x10000000000000000 is the nearest value that can be represented exactly. static const int M32L = 0xFFFFFFFFFFFFFFFF; 
    
    flutter/.pub-cache/hosted/pub.dartlang.org/pointycastle-3.1.3/lib/src/utils.dart:313:9:
Error: The integer literal 0xFFFFFFFFFFFFFFFF can't be represented exactly in JavaScript.
    Try changing the literal to something that can be represented in Javascript.
    In Javascript 0x10000000000000000 is the nearest value that can be represented exactly. ((0xFFFFFFFFFFFFFFFF) ^ ((1 << (64 - count)) - 1));
    
    flutter/.pub-cache/hosted/pub.dartlang.org/pointycastle-3.1.3/lib/src/platform_check/platform_check.dart:6:35: Error: Method not found: 'getPlatform'. static Platform get instance => getPlatform(); Failed to compile application.
 

Кроме того, знаете ли вы какую-либо другую библиотеку для шифрования строк?

Комментарии:

1. Судя по всему, библиотека шифрования в данный момент не может использоваться в flutter web, решение состоит в том, чтобы переключиться на библиотеку ниндзя.

Ответ №1:

pointycastle-3.1.3 не имеет полной поддержки Интернета.

Если это пакет , который вы добавили в качестве зависимости в свой pubspec.yaml , обновите его до предварительной версии;

 dependencies:
  pointycastle: ^3.2.0-rc0
 

Но если это зависимость от другого импортированного вами пакета,
добавьте предварительную версию в качестве переопределения зависимости;

 dependency_overrides:
  pointycastle: ^3.2.0-rc0
 

Комментарии:

1. Андре в другом ответе прав, это должно быть: dependency_overrides:

2. Да, ответ Андре был первым, должен быть «Принятым» ответом. @stecco

Ответ №2:

У меня недостаточно репутации, чтобы комментировать предыдущий ответ, но есть кое-что, что нужно исправить:

 dependency_overrides:
 

вместо

 dependency_override: