에러가 나서 진행이 안됩니다 ㅠㅠ
1652
작성한 질문수 1
안녕하세요? Flutter 강의 잘 듣고 있습니다.
프로그래밍을 접한지 얼마 안된 사람인데요...
보고 따라하는 중에 한 곳에서 정체되어 더 이상 진행이 안 됩니다.
고민하다가 쪽지를 드립니다.
firebase google 로그인 연동하는 단계에서 오류가 났습니다.
일단 실행하면 LoginPage가 에뮬레이터에 뜨고 logcat에는
2019-03-02 22:04:54.161 5054-5082/com.blome.binstagramflutter E/FA: Failed to load metadata: Metadata bundle is null
2019-03-02 22:04:54.164 5054-5082/com.blome.binstagramflutter E/FA: Failed to load metadata: Metadata bundle is null
2019-03-02 22:04:54.199 5054-5082/com.blome.binstagramflutter E/FA: Failed to load metadata: Metadata bundle is null
2019-03-02 22:04:54.200 5054-5082/com.blome.binstagramflutter E/FA: Failed to load metadata: Metadata bundle is null
2019-03-02 22:04:54.209 5054-5082/com.blome.binstagramflutter E/FA: App is missing ACCESS_NETWORK_STATE permission
2019-03-02 22:04:54.210 5054-5082/com.blome.binstagramflutter E/FA: Failed to load metadata: Metadata bundle is null
2019-03-02 22:04:54.214 5054-5082/com.blome.binstagramflutter E/FA: AppMeasurementReceiver not registered/enabled
2019-03-02 22:04:54.220 5054-5082/com.blome.binstagramflutter E/FA: AppMeasurementService not registered/enabled
2019-03-02 22:04:54.220 5054-5082/com.blome.binstagramflutter E/FA: Uploading is not possible. App measurement disabled
2019-03-02 22:04:54.226 5054-5082/com.blome.binstagramflutter E/FA: Failed to load metadata: Metadata bundle is null
2019-03-02 22:04:54.230 5054-5082/com.blome.binstagramflutter E/FA: Failed to load metadata: Metadata bundle is null
2019-03-02 22:04:54.250 5054-5082/com.blome.binstagramflutter E/FA: Task exception on worker thread: java.lang.IllegalStateException: A required meta-data tag in your app's AndroidManifest.xml does not exist. You must have the following declaration within the element: <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" />: com.google.android.gms.measurement.internal.zzfx.zzs(Unknown Source:593)
이런 에러 메시지가 뜨네요.
구글로그인 버튼을 누르면 앱이 종료되고
2019-03-02 22:09:24.125 5054-5054/com.blome.binstagramflutter E/MethodChannel#plugins.flutter.io/google_sign_in: Failed to handle method call
java.lang.IllegalStateException: A required meta-data tag in your app's AndroidManifest.xml does not exist. You must have the following declaration within the element: <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" />
at com.google.android.gms.common.GooglePlayServicesUtilLight.isGooglePlayServicesAvailable(Unknown Source:17)
at com.google.android.gms.common.GoogleApiAvailabilityLight.isGooglePlayServicesAvailable(Unknown Source:5)
at com.google.android.gms.common.GoogleApiAvailability.isGooglePlayServicesAvailable(Unknown Source:94)
at com.google.android.gms.auth.api.signin.GoogleSignInClient.zze(Unknown Source:9)
at com.google.android.gms.auth.api.signin.GoogleSignInClient.getSignInIntent(Unknown Source:18)
at io.flutter.plugins.googlesignin.GoogleSignInPlugin$Delegate.signIn(GoogleSignInPlugin.java:291)
at io.flutter.plugins.googlesignin.GoogleSignInPlugin.onMethodCall(GoogleSignInPlugin.java:77)
at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(MethodChannel.java:200)
at io.flutter.view.FlutterNativeView.handlePlatformMessage(FlutterNativeView.java:163)
at android.os.MessageQueue.nativePollOnce(Native Method)
at android.os.MessageQueue.next(MessageQueue.java:326)
at android.os.Looper.loop(Looper.java:160)
at android.app.ActivityThread.main(ActivityThread.java:6669)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
2019-03-02 22:09:24.149 5054-5240/com.blome.binstagramflutter E/AndroidRuntime: FATAL EXCEPTION: GoogleApiHandler
Process: com.blome.binstagramflutter, PID: 5054
java.lang.IllegalStateException: A required meta-data tag in your app's AndroidManifest.xml does not exist. You must have the following declaration within the element: <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" />
at com.google.android.gms.common.GooglePlayServicesUtilLight.isGooglePlayServicesAvailable(Unknown Source:17)
at com.google.android.gms.common.GoogleApiAvailabilityLight.isGooglePlayServicesAvailable(Unknown Source:5)
at com.google.android.gms.common.GoogleApiAvailability.isGooglePlayServicesAvailable(Unknown Source:94)
at com.google.android.gms.common.internal.GoogleApiAvailabilityCache.getClientAvailability(Unknown Source:23)
at com.google.android.gms.common.api.internal.GoogleApiManager$zaa.connect(Unknown Source:216)
at com.google.android.gms.common.api.internal.GoogleApiManager.zab(Unknown Source:47)
at com.google.android.gms.common.api.internal.GoogleApiManager.handleMessage(Unknown Source:173)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:193)
at android.os.HandlerThread.run(HandlerThread.java:65)
--------- beginning of system2019-03-02 22:09:24.160 5054-5072/com.blome.binstagramflutter E/flutter: [ERROR:flutter/shell/common/shell.cc(184)] Dart Error: Unhandled exception:
NoSuchMethodError: The getter 'authentication' was called on null.
Receiver: null
Tried calling: authentication
0 Object.noSuchMethod (dart:core/runtime/libobject_patch.dart:50:5)
#1 LoginPage._handleSignIn (package:binstagram_flutter/login_page.dart:52:62)<asynchronous suspension>
#2 LoginPage.build.<anonymous closure> (package:binstagram_flutter/login_page.dart:26:17)
#3 _InkResponseState._handleTap (package:flutter/src/material/ink_well.dart:507:14)
#4 _InkResponseState.build.<anonymous closure> (package:flutter/src/material/ink_well.dart:562:30)
#5 GestureRecognizer.invokeCallback (package:flutter/src/gestures/recognizer.dart:102:24)
#6 TapGestureRecognizer._checkUp (package:flutter/src/gestures/tap.dart:242:9)
#7 TapGestureRecognizer.handlePrimaryPointer (package:flutter/src/gestures/tap.dart:175:7)
#8 PrimaryPointerGestureRecognizer.handleEvent (package:flutter/src/gestures/recognizer.dart:315:9)
#9 PointerRouter._dispatch (package:flutter/src/gestures/pointer_router.dart:73:12)
#10 PointerRouter.route (package:flutter/src/gestures/pointer_router.dart:101:11)
#11 _WidgetsFlutterBinding&BindingBase&GestureBinding.handleEvent (package:flutter/src/gestures/binding.dart:180:19)
#12 _WidgetsFlutterBinding&BindingBase&GestureBinding.dispatchEvent (package:flutter/src/gestures/binding.dart:158:22)
#13 _WidgetsFlutterBinding&BindingBase&GestureBinding._handlePointerEvent (package:flutter/src/gestures/binding.dart:138:7)
#14 _WidgetsFlutterBinding&BindingBase&GestureBinding._flushPointerEventQueue (package:flutter/src/gestures/binding.dart:101:7)
#15 _WidgetsFlutterBinding&BindingBase&GestureBinding._handlePointerDataPacket (package:flutter/src/gestures/binding.dart:85:7)
#16 _invoke1 (dart:ui/hooks.dart:168:13)
#17 _dispatchPointerDataPacket (dart:ui/hooks.dart:122:5)
이렇게 뜹니다..
--------------------------------------------- -----------------------------------------------------
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
apply plugin: 'com.google.gms.google-services'
android {
compileSdkVersion 28
sourceSets { main.java.srcDirs += 'src/main/kotlin'
}
lintOptions {
disable 'InvalidPackage'
}
defaultConfig {
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
applicationId "com.blome.binstagramflutter"
minSdkVersion 21
targetSdkVersion 28
multiDexEnabled true
versionCode flutterVersionCode.toInteger()
versionName flutterVersionName
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
// TODO: Add your own signing config for the release build.
// Signing with the debug keys for now, so `flutter run --release` works.
signingConfig signingConfigs.debug
}
}
}
flutter {
source '../..'
}
dependencies {
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test:runner:1.1.0-alpha4'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0-alpha4'
implementation 'com.google.firebase:firebase-core:16.0.7'
}
--------------------------------------------- --------------------------------------------------
buildscript {
ext.kotlin_version = '1.3.21'
repositories {
google()
jcenter()
}
dependencies { classpath 'com.android.tools.build:gradle:3.3.1'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
classpath 'com.google.gms:google-services:4.2.0'
}
}
allprojects {
repositories {
google()
jcenter()
}
}
rootProject.buildDir = '../build'
subprojects {
project.buildDir = "${rootProject.buildDir}/${project.name}"
}
subprojects {
project.evaluationDependsOn(':app')
}
task clean(type: Delete) {
delete rootProject.buildDir
}
----------------------------------------- ----------------------------------------------
org.gradle.jvmargs=-Xmx1536M
android.useAndroidX=true
android.enableJetifier=true
----------------------------------------------- < 매니페스트 > ---------------------------------------------------
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.blome.binstagramflutter">
<!-- The INTERNET permission is required for development. Specifically, flutter needs it to communicate with the running application
to allow setting breakpoints, to provide hot reload, etc.
-->
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<!-- io.flutter.app.FlutterApplication is an android.app.Application that
calls FlutterMain.startInitialization(this); in its onCreate method.
In most cases you can leave this as-is, but you if you want to provide
additional functionality it is fine to subclass or reimplement
FlutterApplication and put your custom class here. -->
<application
android:name="io.flutter.app.FlutterApplication"
android:label="binstagram_flutter"
android:icon="@mipmap/ic_launcher">
<activity
android:name=".MainActivity"
android:launchMode="singleTop"
android:theme="@style/LaunchTheme"
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|layoutDirection|fontScale|screenLayout|density"
android:hardwareAccelerated="true"
android:windowSoftInputMode="adjustResize">
<!-- This keeps the window background of the activity showing
until Flutter renders its first frame. It can be removed if
there is no splash screen (such as the default splash screen
defined in @style/LaunchTheme). -->
<meta-data
android:name="io.flutter.app.android.SplashScreenUntilFirstFrame"
android:value="true" />
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
</application>
뭐가 잘못된걸까요?
답변 2
1
로그를 보니 AndroidManifest.xml 에 <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" /> 를 추가하라고 나오네요.
이건 네이티브 개발할 때는 필요한데 플러터에서는 별도로 추가할 필요가 없는데 이상하네요.
라이브러리 설정이 제대로 반영이 안 되거나 꼬였거나 뭔가 이유가 있는 듯 합니다.
완전히 깨끗하게 안드로이드 스튜디오의 메뉴중 Tools > Flutter > Flutter Clean 을 실행해 보세요.
과거 ai없을때 듣고 다시 듣는 중인데
1
55
1
40번 수업이 완료가 되지 않아요.
0
62
1
최신버전 firebase_ui_auth 할때 EmailAuthProvider 오류 잡는 방법
0
158
1
애뮬레이터로 main.dart를 실행하면 컴퓨터가 멈춥니다.
0
330
2
혹시 재촬영 계획이 있으신가요?
0
249
1
애뮬레이터 Intel HAXM 다운로드가 안돼요
0
559
2
에뮬레이터 홈화면
0
259
1
종속성 충돌 질문
0
341
1
plugin 중에서 에러 발생시 발생한 코드 위치에 바로 에러 표시해주는 기능 있을까요?
0
426
1
firebase option 오류
0
374
2
alt+enter 가 맥북에서는 option enter로 알고 있는데 단축키가 먹히지 않습니다 ㅜㅜ
0
1462
11
파이어베이스 연결시 갑자기 다른 오류가 발생했어요 ㅠㅠ
0
409
1
Failed assertion: line 246 pos 15: 'items.length >= 2': is not true.
0
1321
1
Firebase로 이메일 로그인 기능 구현
0
355
1
GridView에 데이터가 표시가 안됩니다.
0
298
1
The Android Gradle plugin supports only Kotlin Gradle plugin version 1.5.20 and higher. 해결법을 모르겠습니다
0
6896
4
안드로이드 에뮬레이터 실행오류
1
1010
1
firebase 연동 중 오류 질문
0
468
1
05. AccountPage UI 작성강의 설명문의
0
371
1
firestore에서 List<String>을 받아오고 싶을 때
0
543
1
firebase 이메일 로그인 설정 관련 오류 문의의 건
0
1091
1
기본위젯
0
2731
1
firebase에 upload 에러가 발생했습니다
0
1284
3
디버그 서명 인증서 SHA-1가 구해지지 않습니다.
1
319
1





