読者です 読者をやめる 読者になる 読者になる

ASで一度作った構成をプロジェクト設定ファイルなしにimportできるか試してみた

gradle android IDEA AS


検証追記中)



で LocalRepository宣言しないでも出来たよ?
みたいな話を言われて

  • やっぱり出来ない。。あれ??


AsAbstest/abstest の位置で
./gradlew clean build

結局ASで出来るみたいな話が出たので、githubにあげてるコードのimportを試してみた。

ぶっちゃけこれマゾい。

githubでは

  • IDEAの設定ファイルを上げないようにしよう*1

みたいな話があるからな−
まだeclipseなら相対パスなんですけどね−(書き方によるけど。。。)

 結構ASさんの余計なチェック機能ウザい。

  • gradleProjectとしてimportするには一度gradleスクリプトを走らせます
    • エラーが出たらimportしません

これ要らない><。正直勘弁して下さい

そもそも

  • gradleの文法としては正しくて動いてる
  • よく分かんないチェックで弾かれる*2

とかしないと駄目なんかな−。

ココらへんの思想見てると
最終的にgradleファイルをユーザに弄らせないようにする思想なのかな。。
(書き換えるべき設定ファイルの一部)

それでもeclipseのADT pluginは
project.properties とか上手く書き換えてたけど(既存記載残して)
まだまだ発展途中だからでしょうかね。。。




で、なんか v0.1.2 で v0.1.1 と出てる警告が違うので
eclipse export => android v0.1.2 に食わせてみる


Gradle:
FAILURE: Build failed with an exception.
What went wrong:
Project 'null' not found in root project 'XXXXX'.
Try: Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
コンソールからは実行問題ないんだけどなー

追記)
v0.1.6 では別の位置にエラー表示が出るようになった
エラーの中身自体は v0.1.3/v0.1.5と変わらんけど


7:37:39 IllegalArgumentException:
Error during dispatching of java.awt.event.InvocationEvent[INVOCATION_DEFAULT,runnable=com.intellij.openapi.externalSystem.util.ExternalSystemApiUtil$6@40e54ae2,notifier=null,catchExceptions=false,when=1372113458570]
on apple.awt.CToolkit@d975cb7:
Argument 1 for @NotNull parameter of com/android/tools/idea/gradle/service/GradleProjectDataService.customizeModule must not be null


な感じになってた。。

settings.gradle無 直下のbuild.gradle実行
settings.gradle有 multi projectとして実行

 multi projectとして実行されている場合、

include 'XXXX'

とされているものがスタートポイントになっているっぽい

 settings.gradle は空でも駄目。
includeFlat で子プロ相対設定しても駄目。
多分 mainProjectのほうが初期化出来てない

  • mainProject
include ':XXXX'

のものが1個もない=>android IDEA plugin が エラーの判定にしてるのだと思う




で、半ば諦めていた処に

読んでて、
「Volley のディレクトリ構成に合わせてビルドスクリプトを記述した」
の処、

みてて、settings.gradle の事前誤判定チェックで動かないなら、

  1. settings.gradle消して
  2. Main側のbuild.gradleに全部記述

なら確かに上手く動くよなーと。

なんかやな書き方なんですけどね−(汗

=>結局この書き方も駄目だった。。。(汗

*1:絶対パスバリバリ記述あるので

*2:単体build.gradleのスタンドアローン動作って保証しないと駄目なん?