====== react-native-maps ======
[[https://medium.com/quick-code/react-native-location-tracking-14ab2c9e2db8|React Native Location Tracking]]
===== インストール =====
npm install react-native-maps --save
react-native link
Google Maps Platform ドキュメント
https://developers.google.com/maps/documentation/
Get API Key
https://developers.google.com/maps/documentation/android-sdk/signup
Step 1. Get an API key
Google Maps Platform の有効化
[[google:google_maps_platform|詳細はここ]]
Step 2. Add the API key to your app
native_background_timer\android\app\src\main\AndroidManifest.xml にmeta-data追加
・・・
↓追加
===== react-native run-androidの文字化け =====
chcp 932をしないとreact-native run-androidが文字化けする。
===== エラー =====
FAILURE: Build failed with an exception.
* What went wrong:
Could not resolve all files for configuration ':react-native-maps:debugCompileClasspath'.
> Could not resolve com.android.support:support-compat:26.1.0.
Required by:
project :react-native-maps
> Cannot find a version of 'com.android.support:support-compat' that satisfies the version constraints:
Dependency path 'native_background_timer:react-native-maps:unspecified' --> 'com.facebook.react:react-native:0.59.1' --> 'com.android.support:appcompat-v7:28.0.0' --> 'com.android.support:support-compat:28.0.0'
native_background_timer\node_modules\react-native-maps\lib\android\build.gradleに追加 ※ファイルの場所に注意
↓
dependencies {
def googlePlayServicesVersion = safeExtGet('googlePlayServicesVersion', DEFAULT_GOOGLE_PLAY_SERVICES_VERSION)
// Variable lookup order : googlePlayServicesMapsVersion > googlePlayServicesVersion > DEFAULT_GOOGLE_PLAY_SERVICES_MAPS_VERSION
def googlePlayServicesMapsVersion = safeExtGet('googlePlayServicesMapsVersion', safeExtGet('googlePlayServicesVersion', DEFAULT_GOOGLE_PLAY_SERVICES_MAPS_VERSION))
def androidMapsUtilsVersion = safeExtGet('androidMapsUtilsVersion', DEFAULT_ANDROID_MAPS_UTILS_VERSION)
compileOnly "com.facebook.react:react-native:+"
implementation "com.google.android.gms:play-services-base:$googlePlayServicesVersion"
implementation "com.google.android.gms:play-services-maps:$googlePlayServicesMapsVersion"
implementation "com.google.maps.android:android-maps-utils:$androidMapsUtilsVersion"
//↓追加しないとrunできない
implementation "com.android.support:appcompat-v7:${rootProject.ext.supportLibVersion}"
}
==== react-native run-androidをするとすぐおちる ====
[[https://github.com/react-native-community/react-native-maps/issues/2766|Blank map on android device #2766]]
> adb logcat | findstr "Google Maps Android API" // windowsなのでgrepがない
・・・
03-29 22:27:58.592 6007 6066 E AndroidRuntime: Process: com.native_background_timer, PID: 6007
03-29 22:27:58.592 6007 6066 E AndroidRuntime: java.lang.NoClassDefFoundError: Failed resolution of: Lorg/apache/http/ProtocolVersion;
・・・
↓を参考にして native_background_timer\android\app\build.gradle に追加
[[https://github.com/react-native-community/react-native-maps/issues/818|Failed resolution of com.google.android.gms.maps.GoogleMapOptions #818]]
android {
compileSdkVersion rootProject.ext.compileSdkVersion
・・・
}
defaultConfig {
applicationId "com.native_background_timer"
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
versionCode 2
versionName "1.1"
multiDexEnabled true // ADD
}
dependencies {
implementation project(':react-native-maps')
implementation ("com.google.android.gms:play-services-maps:+") { // ADD
force = true; // ADD
} // ADD
implementation 'com.android.support:multidex:1.0.0' // ADD
implementation project(':react-native-background-timer')
implementation fileTree(dir: "libs", include: ["*.jar"])
implementation "com.android.support:appcompat-v7:${rootProject.ext.supportLibVersion}"
implementation "com.facebook.react:react-native:+" // From node_modules
}
{{:reactnative:pasted:20190330-094948.png}}