既存の Android プロジェクトを Gradle な構成にしてみた

IntelliJ IDEA にインポートした構成Google I/O 2014 でも発表があった Build Variants に憧れて、Gradle 移行を試みた。
しかし、そのまま Migrating from Eclipse | Android Developers の通りに行うと、従来の構成に build.gradle や gradlew などが追加されただけ(右図)で、リソースの切り替えで汚くなりそうだなと思ったので、ちゃんとした? Gradle な構成にすることにした。

まず、新しいプロジェクトを IntelliJ IDEA もしくは Android Studio で作成する。この時、Gradle: Android Module を選択する。
新規プロジェクト作成

次に、既存プロジェクトの src/ にあるものをすべて src/main/java/ に移動する。
既存プロジェクトの res/ は src/main/ に移動(上書き)する。
既存プロジェクトの AndroidManifest.xml は src/main/ に移動(上書き)する。

で、これでコンパイルしてみる。

文字コードによるエラー

.java ファイルが Shift-JIS だったが、コメントが文字化けしてしまい、コンパイルエラーが発生した。UTF-8 に変換したら解決できた。(Windows だと一括で変換できなくて苦労した…)

AIDL ファイルによるエラー

.aidl ファイルは自動で .java ファイルに変換されるのだが、見つからないというコンパイルエラーが発生した。src/main/aidl/ のディレクトリを作成し、そこにパッケージ構造をそのままに .aidl ファイルを移動したら、build/source/aidl/ に .java ファイルが作成されるようになった。

apk ファイルの署名

debug.keystore ではなく gsbina.debug.keystore を使っていたので、.keystore ファイルをプロジェクト内に保存し、build.gradle の android {} に下記を追加した。

これでビルドできるようになった。それから src/otherBuildType/ でリソースの切り替えもできた。残る問題はバージョン管理かな。移動ばっかで汚いコミットになりそうだ。

Android

コメントを残す

メールアドレスが公開されることはありません。

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>