NetBneans IDE 7.4 でGoogle Map Service v2

やっとNetBeansでGoogleMapServiceを使ったプロジェクトがビルド出来たのでメモ

OS Windows8 Pro 64bit
JavaSDK OracleJava Oracle 1.7.0_45
Android SDK Rev 22.3
Gradle 1.9
IDE NetBeans IDE 7.4
プラグイン Android 1.226
NBAndroid Gradle Support 1.226
NBAndroid Extensions 1.226

キーストアの作成とDevelopers ConsoleAPIキーの取得は済んでいるものとします。

build.gradleの変更

  1. 末尾に依存情報を追加
  2. 実行をして依存関係を読み込ませる
dependencies {
    compile 'com.android.support:appcompat-v7:+'
    // Google Play Services
    compile 'com.google.android.gms:play-services:+'
    // You must install or update the Google Repository through the SDK manager to use this dependency.
    // The Google Repository (separate from the corresponding library) can be found in the Extras category.
    // compile 'com.google.android.gms:play-services:+'
    // Google Play Services
}

MainActivityの変更

  1. FragmentActivityへ変更
  2. importを整備
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;

public class MainActivity extends FragmentActivity
{
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
}

AndroidManifest.xmlに権限追加

  1. 権限の追加
  2. meta情報も忘れずに
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="jp.tackn.hellogradle"
      android:versionCode="1"
      android:versionName="1.0">

    <uses-sdk
    android:minSdkVersion="9"
    android:targetSdkVersion="12" />

    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />

    <!-- External storage for caching. -->
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

    <!-- My Location -->
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

    <!-- OpenGL ES 2.0. -->
    <uses-feature
        android:glEsVersion="0x00020000"
        android:required="true" />
    
    <application android:label="@string/app_name" android:icon="@drawable/ic_launcher">
        <meta-data
            android:name="com.google.android.maps.v2.API_KEY"
            android:value="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" />
        <meta-data
            android:name="com.google.android.gms.version"
            android:value="@integer/google_play_services_version" />
        
        <activity android:name="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>
</manifest>

レイアウトファイルの編集

  • match_parentにするくらいかな
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:map="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">
    <fragment
        android:id="@+id/map"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    class="com.google.android.gms.maps.SupportMapFragment"
    />
</LinearLayout>

これでビルドすればとりあえず通るはず。

署名をする前準備

  1. 署名に必要なkeystoreを用意
  2. プロパティファイルを作成
  • pushしないように注意
storeFile=../Relase.key
storePassword=XXXXX
keyAlias=XXXXX
keyPassword=XXXXX

build.gradleの編集

android配下、buildTypesの弟に追加

    signingConfigs {
        releaseConfig {
            storeFile=file(project.properties.storeFile)
            storePassword=project.properties.storePassword
            keyAlias=project.properties.keyAlias
            keyPassword=project.properties.keyPassword
        }
    }

    buildTypes {
        release {
            signingConfig signingConfigs.releaseConfig
        }
    }

署名ファイルの作成

プロジェクトで右クリックしてassembleReleaseのタスクを実行

ファイルタブを開くと署名されたapkファイルが出来ている


カスタムタスクを実行

毎回apkファイルを別途インストールしているのも面倒なのでカスタムタスクReleaseを作る

  • clean
  • assembleRelease
  • installDefaultFlavorRelease

これで署名付きファイルのクリーン、ビルド、インストールを一括に行える