Android Studio が自動で作ったのが以下。
apply plugin: 'android'
android {
compileSdkVersion 19
buildToolsVersion "19.0.1"
defaultConfig {
minSdkVersion 14
targetSdkVersion 19
versionCode 1
versionName "1.0"
}
buildTypes {
release {
runProguard false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
}
dependencies {
}
別件プロジェクトな build.gradle とはかなり違ってるんでびっくり。
sourceSets
以下は追加しとくべきなのかどうか。
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
resources.srcDirs = ['src']
aidl.srcDirs = ['src']
renderscript.srcDirs = ['src']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
}
// Move the tests to tests/java, tests/res, etc...
instrumentTest.setRoot('tests')
// Move the build types to build-types/<type>
// For instance, build-types/debug/java, build-types/debug/AndroidManifest.xml, ...
// This moves them out of them default location under src/<type>/... which would
// conflict with src/ being used by the main source set.
// Adding new build types or product flavors should be accompanied
// by a similar customization.
debug.setRoot('build-types/debug')
release.setRoot('build-types/release')
}
定型みたいなので追加してみる方向。あとは signingConfigs とか本番用の鍵関連の情報とか bulidTypes とかも必要なのかどうか。
signingConfigs {
debug {
storeFile file(homeDirectory + "/.android/debug.keystore")
}
myConfig
}
if (project.hasProperty('storeFile')) {
android.signingConfigs.myConfig.storeFile = file(homeDirectory + storeFile)
}
if (project.hasProperty('storePassword')) {
android.signingConfigs.myConfig.storePassword = storePassword
}
if (project.hasProperty('keyAlias')) {
android.signingConfigs.myConfig.keyAlias = keyAlias
}
if (project.hasProperty('keyPassword')) {
android.signingConfigs.myConfig.keyPassword = keyPassword
}
buildTypes {
debug {
signingConfig signingConfigs.debug
}
release {
signingConfig signingConfigs.myConfig
}
}
上記追加であれば gradle.properties というファイルを追加して以下を盛り込む方向。
storeFile=/.android/hoge.keystore
storePassword=fuga
keyAlias=fuga
keyPassword=fuga
手持ちのソレは native なナニを云々してるのでもう少し色々ありますが、この程度の修正で apk 作ったりとかデバグ用な build ができるかとか確認してみます。
問題あれば追記の方向で。
gradlew してみた
とりあえず gradlew に実行権限付いてない。a+x して実行するも failure とのこと。これ、すっかり忘れてたんですが環境変数で $HOME 渡さねば、なんでした。
$ ./gradlew -PhomeDirectory=$HOME clean aR
次は Main Manifest missing とのこと。これ、Eclipse なプロジェクトの build.gradle を真似てるあたり、非常に危険ですね。sourceSets 云々はざくっと削除で。あと、defaultConfig も復活。
あと、gradle.properties は .gitignore に追加必要ってのと雛形として gradle.properties.proto を追加必要。備忘です。
BUILD SUCCESSFUL
と思ったら Android Studio 上で Build できぬ。
って build.gradle に以下な記述が入ってたよorz
def homeDirectory = System.getenv()['HOME']
正常動作を確認。
備忘含めて commit 作って push しときます。つうかバグ修正な commit が作成されるのか。
今のところ
build.gradle は以下なカンジです。
$ cat app/build.gradle
apply plugin: 'android'
android {
compileSdkVersion 19
buildToolsVersion "19.0.1"
defaultConfig {
minSdkVersion 14
targetSdkVersion 19
versionCode 1
versionName "1.0"
}
def homeDirectory = System.getenv()['HOME']
signingConfigs {
debug {
storeFile file(homeDirectory + "/.android/debug.keystore")
}
myConfig
}
if (project.hasProperty('storeFile')) {
android.signingConfigs.myConfig.storeFile = file(homeDirectory + storeFile)
}
if (project.hasProperty('storePassword')) {
android.signingConfigs.myConfig.storePassword = storePassword
}
if (project.hasProperty('keyAlias')) {
android.signingConfigs.myConfig.keyAlias = keyAlias
}
if (project.hasProperty('keyPassword')) {
android.signingConfigs.myConfig.keyPassword = keyPassword
}
buildTypes {
debug {
signingConfig signingConfigs.debug
}
release {
runProguard false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
signingConfig signingConfigs.myConfig
}
}
}
dependencies {
}
そりゃ良いのですがとりあえず問題発生なので対処しますorz