hishidaの開発blog

EBシリーズ(EBPocket,EBWin,EBMac,EBStudio),KWIC Finder,xdoc2txt,読書尚友の開発者ブログ

eclipse+ADTの環境がグダグダな件

androidの開発環境は当初eclipse+ADT(Android Developer Tools)が標準だったが、現在ではAndroid Studioが標準の開発環境になっており、Android DevelopersのページからはAndroid Studioをダウンロードするようになっている。
Download Android Studio and SDK tools  |  Android Developers
以前あったADT budle版のeclipseは提供されていない。eclipseAndroid開発環境を構築したい場合は、単体のeclipseをインストール後、ADTとSDKを自分でインストールする必要がある。
eclipseからAndroid Studioへのインポートは可能だが、NDKを使ったアプリだとまだいろいろ不具合があって、何度か試みているがまだEBPocketのAndroid Studio化に成功していない。ちなみに、読書尚友はNDKを使用していないのでAndroid Studio化可能なことを確認している。

さて、まだまだ現役のeclipse+ADTだが、開発のメインストリームから外れてしまったためか、現在javaのバージョンとの整合性がグダグダになっている。
前提として、Mac OS Xでは標準ではjava6が入っており、java7以降は別途ORACLEの配布ページよりダウンロードしてインストールすることになっている。

1. Android 5.0(API21)以降、java7が必要

まず一つ目の問題は、Android 5.0(API21)以降、java7が必要になった。java6でAndroid5.0以降のSDKを使用すると、次のメッセージが出る

"Loading data for Android 5.0" has encountered a problem. Parsing Data for android-21 failed unsupported major.minor version 51.0

これはjava7(JDK1.7)を入れればひとまず解決する。
eclipse - Parsing Data for android-21 failed unsupported major.minor version 51.0 - Stack Overflow

2. java7だと新規プロジェクトが作成できない

ところが、java7を入れると、今度は新規のAndroidプロジェクトを作成したときにActivityが作れないというバグがある。

Errors running builder 'Android Resource Manager' on project 'test'.
java.lang.NullPointerException

この解決方法はこちらで、強制的にMac OS X付属のjava6を指定する。
ログイン - Google アカウント

Eclipse.appをファインダで右クリック→パッケージの内容を表示
/Contents/MacOS/eclipse.ini
をエディタで編集し、
-vmargsの前に、以下2行を挿入

-vm
/System/Library/Frameworks/JavaVM.framework/Versions/1.6/Commands/java

これでめでたくプロジェクトが作れるが、1) の問題にもどってしまい、Android5.0以降のSDKを使っているとエラーになる。これでは堂々巡りだ!

困った挙句、暫定的にeclipseの環境を二つ作ることにした。
(1) ADT23.0 + SDK r24.0 (API21以降) + java7 (JDK1.7)
(2) ADT22.3 + SDK r22.3 (API19まで) + java6 (JDK1.6)

通常の開発は(1)で行い、新規プロジェクトの作成だけ(2)で行っている。targetのSDKバージョンは後から変えられるので。
ADT22.3の環境を構築する方法はこちらで:
Android SDK 22.3 で開発環境を作る方法【新規構築・ダウングレード】 : ガジェブロ!- 【ガジェットレビュー・アプリ開発】

今後このjavaのバージョンの不整合が解決されるのかどうかはわからない。NDK周りの問題がなければ、素直にAndroid Studio に移行するのが一番いいと思う。