안드로이드
[안드로이드] E/Google Maps Android API: Authorization failure. 구글맵 연동시 권한 에러가 날때
http://portfolio.wonpaper.net
2021. 3. 25. 02:41
구글맵 연동하여 작업을 할때, 아래와 같이 권한 관련 에러 메세지를 접할 수 있다.
1
2
3
4
5
6
|
E/Google Maps Android API: Authorization failure. Please see https://developers.google.com/maps/documentation/android-api/start for how to correctly set up the map.
E/Google Maps Android API: In the Google Developer Console (https://console.developers.google.com)
Ensure that the "Google Maps Android API v2" is enabled.
Ensure that the following Android Key exists:
API Key: AIzaSy000000000000000000000000000
Android Application (<cert_fingerprint>;<package_name>): 81:D1:E5:D2:E8:79:7C:F0:95:9A:21:2D:9E:1F:1F:1B:18:13:22:AF;won.test.test001
|
cs |
권한이 제대로 적용되지 않아서 나오는 에러메세지이다.
[ 점검 사항 ]
1. 구글 클라우드 api 콘솔 사이트에서 사용자 인증 권한 확인한다.
애플리케이션 제한사항은 없음으로 간단히 하면 아주 간단히 설정을 마칠수 있다.
좀더 보안적으로 강화하고 싶으면 따로 제한사항 설정을 추가해도 된다.
2. 구글맵 기능을 클릭하여 정상적으로 사용중인지 확인한다.
1번, 2번으로 구글 api 콘솔에서의 설정은 끝났다.
3. 구글맵 소스 코드 키값 추가적용한다.
[ AndroidManifest.xml ]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="won.test.test001">
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<application
.....>
<meta-data
android:name="com.google.android.gms.version"
android:value="@integer/google_play_services_version" />
<meta-data
android:name="com.google.android.geo.API_KEY"
android:value="@string/google_maps_key" />
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
|
cs |
16라인, 17라인부분이다.
[ gradle.properties ] - Project Properties 소스내 추가
1
|
GOOGLE_MAPS_API_KEY=AIzaSy00000000000000000000
|
cs |
[ build.gradle ] - apps 소스내 추가
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
android {
compileSdkVersion 30
buildToolsVersion "30.0.2"
defaultConfig {
applicationId "won.test.test001"
minSdkVersion 24
targetSdkVersion 30
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
resValue "string", "google_maps_key",
(project.findProperty("GOOGLE_MAPS_API_KEY") ?: "")
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
dependencies {
implementation 'androidx.appcompat:appcompat:1.2.0'
implementation 'com.google.android.material:material:1.3.0'
implementation 'androidx.constraintlayout:constraintlayout:2.0.4'
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
testImplementation 'junit:junit:4.+'
androidTestImplementation 'androidx.test.ext:junit:1.1.2'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
implementation 'com.google.android.material:material:1.0.0'
implementation 'com.android.volley:volley:1.1.0'
implementation 'com.google.android.gms:play-services-maps:17.0.0'
implementation 'com.google.android.gms:play-services-location:17.0.0'
}
|
cs |
resValue "string", "google_maps_key",
(project.findProperty("GOOGLE_MAPS_API_KEY") ?: "")
14, 15라인과
implementation 'com.google.android.gms:play-services-maps:17.0.0'
implementation 'com.google.android.gms:play-services-location:17.0.0'
41, 42라인이다.
Sync 클릭하고, 컴파일한 다음 실행해 보자. ^^