Хорошо, я полностью следовал этому примеру: https://flutter.io/platform-channels/
и попытался изменить его так:
List<double> points;
try {
//Changed This
/*final String result = await platform.invokeMethod('getBatteryLevel');
batteryLevel = 'Battery level at $result % .'; */
//To This
final List<double> result = await platform.invokeMethod('getBatteryLevel');
points = result;
print("Message 2");
Затем в MainActivity.java изменили функцию getBatteryLevel так:
private List<Double> getBatteryLevel() {
List<Double> list = Arrays.asList(1.38, 2.56, 4.3);
return list;
И, наконец, изменил MethodCall на это:
List<Double> batteryLevel = getBatteryLevel();
Log.i("errors", "Message");
result.success(batteryLevel);
Но когда я запускаю код, печатается Сообщение 1 , а Сообщение 2 - нет.
Я заметил, что с простыми типами, такими как Strings и Integer, вместо List работал. Я также пытался заменить List массивами в Java, но все равно не получилось. Проблема в том, что я не получаю никаких ошибок, никаких следов стека, ничего. Я подумал, что в дартсе он ждет чего-то, что никогда не приходит, так как списки двойников в дартсе и Java не совпадают. Но это только то, что я думал. Может ли это быть проблемой? Как я могу решить это?