Проблема Graphql-Flutter: возникла проблема при настройке проекта ': подключение' - PullRequest
0 голосов
/ 08 мая 2020

У меня проблема с флаттером: раньше я писал свое приложение флаттера на windows 10, и у меня не было проблем с этим. но с тех пор, как я перешел на ubuntu 20.04, я столкнулся с некоторыми проблемами с флаттером.
когда я запускаю простое приложение флаттера по умолчанию, оно работает очень хорошо без каких-либо проблем, но когда я делаю простое приложение для использования graphql-flutter пакет для отправки запроса, сразу после нажатия F5 для запуска программы я обнаружил это сообщение об ошибке:

FAILURE: Build failed with an exception.

* What went wrong:
A problem occurred configuring project ':connectivity'.
> Could not resolve all artifacts for configuration ':connectivity:classpath'.
   > Could not find crash.jar (com.android.tools.analytics-library:crash:26.3.0).
     Searched in the following locations:
         https://dl.google.com/dl/android/maven2/com/android/tools/analytics-library/crash/26.3.0/crash-26.3.0.jar
> Failed to notify project evaluation listener.
   > Could not get unknown property 'android' for project ':connectivity' of type org.gradle.api.Project.
   > Could not find method implementation() for arguments [project ':connectivity_macos'] on object of type org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 2s
Exception: Gradle task assembleDebug failed with exit code 1

my pubspe c .yaml файл, содержащий:

dependencies:
  flutter:
    sdk: flutter
  graphql_flutter: ^3.0.1

и мой Результат выполнения flutter doctor:

hossein@MHT:~$ flutter doctor -v
[✓] Flutter (Channel stable, v1.17.0, on Linux, locale en_US.UTF-8)
    • Flutter version 1.17.0 at /home/hossein/Development/flutter
    • Framework revision e6b34c2b5c (6 days ago), 2020-05-02 11:39:18 -0700
    • Engine revision 540786dd51
    • Dart version 2.8.1

[✓] Android toolchain - develop for Android devices (Android SDK version 29.0.3)
    • Android SDK at /home/hossein/Android/Sdk
    • Platform android-29, build-tools 29.0.3
    • Java binary at: /snap/android-studio/88/android-studio/jre/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_212-release-1586-b4-5784211)
    • All Android licenses accepted.

[✓] Android Studio (version 3.6)
    • Android Studio at /snap/android-studio/88/android-studio
    • Flutter plugin version 45.1.1
    • Dart plugin version 192.7761
    • Java version OpenJDK Runtime Environment (build 1.8.0_212-release-1586-b4-5784211)

[✓] Connected device (1 available)
    • Android SDK built for x86 • emulator-5554 • android-x86 • Android 10 (API 29) (emulator)

• No issues found!

*** обновление: я снова проверил свой код, когда я удаляю пакет graphql-flutter и все связанные виджеты и функции из моего кода, проблема не возникает, и мой сборка кода и успешное выполнение. кажется, есть проблема между пакетом graphql-flutter и sdk или gradle flutter. но я не знаю, как мне преодолеть эту ошибку. пожалуйста, помогите мне.

мой код флаттера с пакетом graphql-flutter, который вызвал ошибку:

import 'package:flutter/material.dart';
import 'package:graphql_flutter/graphql_flutter.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return GraphQLProvider(
      client: Config.initailizeClient(),
      child: MaterialApp(
        debugShowCheckedModeBanner: false,
        theme: ThemeData(
          appBarTheme: AppBarTheme(color: Colors.grey[700]),
        ),
        home: HomePage(),
      ),
    );
  }
}

class HomePage extends StatefulWidget {
  @override
  _HomePageState createState() => _HomePageState();
}

class _HomePageState extends State<HomePage> {
  String query = '''
    query Products(\$name: String!) {
      products(name:\$name) {
        id
        name
        price
      }
    }
  ''';
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(),
      body: Directionality(
        textDirection: TextDirection.rtl,
        child: Query(
          options: QueryOptions(
            // this is the query string you just created
            documentNode: gql(query),
            variables: {
              "name": "بوت",
            },
          ),
          builder: (QueryResult result,
              {VoidCallback refetch, FetchMore fetchMore}) {
            if (result.hasException) {
              return Text(result.exception.toString());
            }

            if (result.loading) {
              return Center(child: CircularProgressIndicator());
            }
            return Container(
              margin: EdgeInsets.only(right: 8.0, left: 8.0),
              child: ListView.builder(
                itemCount: result.data["products"].length,
                itemBuilder: (BuildContext context, int index) {
                  return ListTile(
                    onTap: () {},
                    title: Container(
                      padding: EdgeInsets.all(5.0),
                      height: 35.0,
                      child: Text(
                        result.data["products"][index]["name"],
                        style: TextStyle(
                            color: Colors.grey[850],
                            fontFamily: 'Yekan',
                            fontSize: 18.0),
                      ),
                    ),
                    subtitle: Text(
                      result.data["products"][index]["price"],
                      style: TextStyle(
                          color: Colors.redAccent,
                          fontFamily: 'Yekan',
                          fontSize: 15.0),
                    ),
                    trailing: Icon(Icons.arrow_right),
                    contentPadding: EdgeInsets.only(top: 3.5, bottom: 3.5),
                  );
                },
              ),
            );
          },
        ),
      ),
    );
  }
}

class Config {
  static final HttpLink link = HttpLink(
    headers: <String, String>{
      'Authorization': 'JWT ${Env.jwtToken}',
      'Content-Type': 'application/json'
    },
    uri: Env.graphqlEndpointURL,
  );

  static ValueNotifier<GraphQLClient> initailizeClient() {
    ValueNotifier<GraphQLClient> client = ValueNotifier(
      GraphQLClient(
        cache: InMemoryCache(),
        link: link,
      ),
    );
    return client;
  }
}

и когда я удаляю функциональность пакета graphql-flutter и упрощаю свой код, который создается и запускается успешно выглядит так:

import 'package:flutter/material.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      theme: ThemeData(
        appBarTheme: AppBarTheme(color: Colors.grey[700]),
      ),
      home: SecondPage(),
    );
  }
}

class SecondPage extends StatefulWidget {
  @override
  _SecondPageState createState() => _SecondPageState();
}

class _SecondPageState extends State<SecondPage> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(),
      body: Center(
        child: Text('salam'),
      ),
    );
  }
}

1 Ответ

0 голосов
/ 09 мая 2020

Это может быть из-за некоторых проблем с версией connectivity graphql_flutter, используемой.
Сначала попробуйте flutter clean, а если это не сработает, попробуйте заменить connectivity в вашем pubspec.yaml:

dependency_overrides:
  connectivity: 0.4.8+5
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...