커뮤니티
포인트
쿠폰
내 강의실
국비 신청 내역
증명서
계정
로그아웃
학습 질문
개발 일지
나의 활동
답변 완료
4주차-3 watcha_pedia 정상 실행이 안되네요.
[왕초보] 플러터(Flutter)로 시작하는 앱개발 종합반 v0
4주차
북마크
어*광
댓글
51
추천
0
조회수
84
조회수
84
답변 완료

* 겪고 있는 문제 상황을 최대한 자세하게 작성해주세요.

* 문제 해결을 위해 어떤 시도를 해보았는지 구체적으로 함께 알려주세요.


4주차-3 watcha_pedia 정상 실행이 안되네요.

main.dart 코드 복사했고,

import 'package:flutter/material.dart';

import 'package:provider/provider.dart';


import 'book_service.dart';


void main() {

  runApp(

    MultiProvider(

      providers: [

        ChangeNotifierProvider(create: (context) => BookService()),

      ],

      child: const MyApp(),

    ),

  );

}


class MyApp extends StatelessWidget {

  const MyApp({Key? key}) : super(key: key);


  @override

  Widget build(BuildContext context) {

    return MaterialApp(

      debugShowCheckedModeBanner: false,

      home: HomePage(),

    );

  }

}


class HomePage extends StatefulWidget {

  HomePage({Key? key}) : super(key: key);


  @override

  State<HomePage> createState() => _HomePageState();

}


class _HomePageState extends State<HomePage> {

  var bottomNavIndex = 0;

  @override

  Widget build(BuildContext context) {

    return Scaffold(

      body: [

        SearchPage(),

        LikedBookPage(),

      ].elementAt(bottomNavIndex),

      bottomNavigationBar: BottomNavigationBar(

        selectedItemColor: Colors.black,

        unselectedItemColor: Colors.grey,

        showUnselectedLabels: true,

        selectedFontSize: 12,

        unselectedFontSize: 12,

        iconSize: 28,

        type: BottomNavigationBarType.fixed,

        onTap: (value) {

          setState(() {

            bottomNavIndex = value;

          });

        },

        items: [

          BottomNavigationBarItem(

            icon: Icon(Icons.search),

            label: '검색',

          ),

          BottomNavigationBarItem(

            icon: Icon(Icons.star),

            label: '좋아요',

          ),

        ],

        currentIndex: bottomNavIndex,

      ),

    );

  }

}


class SearchPage extends StatelessWidget {

  SearchPage({super.key});


  @override

  Widget build(BuildContext context) {

    return Scaffold(

      appBar: AppBar(

        backgroundColor: Colors.white,

        toolbarHeight: 80,

        title: TextField(

          onSubmitted: (value) {},

          cursorColor: Colors.grey,

          decoration: InputDecoration(

            prefixIcon: Icon(Icons.search, color: Colors.grey),

            hintText: "작품, 감독, 배우, 컬렉션, 유저 등",

            border: OutlineInputBorder(

              borderSide: BorderSide(color: Colors.white),

              borderRadius: BorderRadius.all(Radius.circular(10)),

            ),

            focusedBorder: OutlineInputBorder(

              borderSide: BorderSide(color: Colors.grey),

              borderRadius: BorderRadius.all(Radius.circular(10)),

            ),

          ),

        ),

      ),

      body: Center(

        child: Text("검색"),

      ),

    );

  }

}


class LikedBookPage extends StatelessWidget {

  const LikedBookPage({super.key});


  @override

  Widget build(BuildContext context) {

    return Scaffold(

      body: Center(

        child: Text("좋아요"),

      ),

    );

  }

}


book.dart 코드 복사했고,

class Book {}


book.service.dart 코드 복사 했습니다.

import 'package:flutter/material.dart';


import 'book.dart';


class BookService extends ChangeNotifier {

  List<Book> bookList = []; // 책 목록

}


코드 실행시 에러가 아래와 같이 나타나네요.


환경설정

name: watcha_pedia

description: A new Flutter project.

# The following line prevents the package from being accidentally published to

# pub.dev using `flutter pub publish`. This is preferred for private packages.

publish_to: 'none' # Remove this line if you wish to publish to pub.dev


# The following defines the version and build number for your application.

# A version number is three numbers separated by dots, like 1.2.43

# followed by an optional build number separated by a +.

# Both the version and the builder number may be overridden in flutter

# build by specifying --build-name and --build-number, respectively.

# In Android, build-name is used as versionName while build-number used as versionCode.

# Read more about Android versioning at https://developer.android.com/studio/publish/versioning

# In iOS, build-name is used as CFBundleShortVersionString while build-number is used as CFBundleVersion.

# Read more about iOS versioning at

# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html

# In Windows, build-name is used as the major, minor, and patch parts

# of the product and file versions while build-number is used as the build suffix.

version: 1.0.0+1


environment:

  sdk: '>=2.19.6 <3.0.0'


# Dependencies specify other packages that your package needs in order to work.

# To automatically upgrade your package dependencies to the latest versions

# consider running `flutter pub upgrade --major-versions`. Alternatively,

# dependencies can be manually updated by changing the version numbers below to

# the latest version available on pub.dev. To see which dependencies have newer

# versions available, run `flutter pub outdated`.

dependencies:

  flutter:

    sdk: flutter



  # The following adds the Cupertino Icons font to your application.

  # Use with the CupertinoIcons class for iOS style icons.

  cupertino_icons: ^1.0.2

  provider: ^6.0.5


dev_dependencies:

  flutter_test:

    sdk: flutter


  # The "flutter_lints" package below contains a set of recommended lints to

  # encourage good coding practices. The lint set provided by the package is

  # activated in the `analysis_options.yaml` file located at the root of your

  # package. See that file for information about deactivating specific lint

  # rules and activating additional ones.

  flutter_lints: ^2.0.0


# For information on the generic Dart part of this file, see the

# following page: https://dart.dev/tools/pub/pubspec


# The following section is specific to Flutter packages.

flutter:


  # The following line ensures that the Material Icons font is

  # included with your application, so that you can use the icons in

  # the material Icons class.

  uses-material-design: true


  # To add assets to your application, add an assets section, like this:

  # assets:

  #   - images/a_dot_burr.jpeg

  #   - images/a_dot_ham.jpeg


  # An image asset can refer to one or more resolution-specific "variants", see

  # https://flutter.dev/assets-and-images/#resolution-aware


  # For details regarding adding assets from package dependencies, see

  # https://flutter.dev/assets-and-images/#from-packages


  # To add custom fonts to your application, add a fonts section here,

  # in this "flutter" section. Each entry in this list should have a

  # "family" key with the font family name, and a "fonts" key with a

  # list giving the asset and other descriptors for the font. For

  # example:

  # fonts:

  #   - family: Schyler

  #     fonts:

  #       - asset: fonts/Schyler-Regular.ttf

  #       - asset: fonts/Schyler-Italic.ttf

  #         style: italic

  #   - family: Trajan Pro

  #     fonts:

  #       - asset: fonts/TrajanPro.ttf

  #       - asset: fonts/TrajanPro_Bold.ttf

  #         weight: 700

  #

  # For details regarding fonts from package dependencies,

  # see https://flutter.dev/custom-fonts/#from-packages




스파르타 즉문즉답

고 계신 화면 전체를 캡처해 주시면, 튜터님들이 빠르게 상황을 이해할 수 있어요.







취소
 공유
취소
댓글 0
댓글 알림
나의얼굴