環境
- mac
- Android Studio0.5.2
前回の続きです。
APIを取得した後は、プロジェクトからSDKを参照できるように設定します。
手順
- library dependencyを選択
- Google play servicesを選択
- applyを押す
- gradleでビルドが走る。
私の環境だと、この場でエラーが発生しました。原因はcompile 'com.google.android.gms:play-services:+'の部分。詳しくエラー内容を見るとgoogle repogitryが存在していなかったのでinstallしました。
installを終えたらもう一度ビルドします。今度はError:Main manifest has <uses-sdk android:minSdkVersion='8'> but library uses minSdkVersion='9'と出てビルド失敗。gradle.buildファイルのminSdkVersionの部分が8になっていたので、以下のように14に修正します。
apply plugin: 'android'
android {
compileSdkVersion 19
buildToolsVersion '19.0.3'
defaultConfig {
minSdkVersion 14
targetSdkVersion 19
versionCode 1
versionName "1.0"
}
buildTypes {
release {
runProguard false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
}
dependencies {
compile 'com.android.support:appcompat-v7:+'
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.google.android.gms:play-services:+'
}
もう一度ビルドするとGradle invocation completed successfully in 27 secが出て成功。
manifest.xmlを変更
google maps android API v2の使用に必要なmanifest.xmlファイルに以下のおまじないを追加します。
manifest.xml
<!-- 追加パーミッション1:Google Maps Android API のアクセス許可 -->
<permission
android:name="com.rakuraku.android.ekimap.permission.MAPS_RECEIVE"
android:protectionLevel="signature" />
<uses-permission android:name="com.rakuraku.android.ekimap.permission.MAPS_RECEIVE" />
<!-- 追加パーミッション2:現在位置取得のため -->
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<!-- 追加パーミッション3:Google Mapsの動作に必要 -->
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<!-- 追加パーミッション4:OpenGL ES version 2(地図描画用) -->
<uses-feature
android:glEsVersion="0x00020000"
android:required="true" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version"/>
<meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="@string/map_key"/>
<activity
android:name="com.example.mapapplication.app.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
おまじないが多いですが、仕方ありません。さらにres/stringsとres/integersのresourceファイルにもAPI keyとGoogle Play Servicesのversionを設定します。
strings.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">MapApplication</string>
<string name="hello_world">Hello world!</string>
<string name="action_settings">Settings</string>
<string name="map_key">AAAAAAAAAAAAAA11111111111111</string>
</resources>
integers.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<integer name="google_play_services_version">4323000</integer>
</resources>
これでようやくjavaプログラムの実装を開始できます。長くなったのでまたまた続きます。次回で終わる予定です。
0 件のコメント:
コメントを投稿