Windows XPでスクリーンキャプチャしたいだけなのよ...

絵を撮りたいだけなのに、Eclipse入れるとかありえんし。
32bit環境で。
64bitのときには、いろいろはまりどころがあるのだが、今回はそれは関係ない。

とりあえず、SDK入れる。

http://developer.android.com/sdk/index.html
installer_r12-windows.exeを落とす。
インストーラーを起動。
JDKがないとか言い腐る。
入ってるよ。
先に進めない。
ひどす。
あ、これ、JREしか入れてないかも...
いや、C:\Program Files\Java\JDK 1.6.0_23がいる。
めんどくさいのでtar展開にする。
# この時おかしいのを突っ込んでおけば、後が楽だったのに... orz


前にtarインストールした環境があるので、念のためディレクトリ名を変更しておく。

C:\OLD_android-sdk-windows

pathにもおそらく入っていると思うので、これも確認。
XPの場合、システムプロパティ->詳細設定->環境変数->システム環境変数->Pathになる。
今は";C:\android-sdk-windows\tools"が追記されていた。
はじめてで、書かれていなければ、追記しておく。


先程のサイトから、android-sdk_r12-windows.zipを落とす。
小さいな。38Mくらいしかないや。
zipアーカイブを開いて、中身をC:\android-sdk-windowsにコピーする。
toolsの下はそろっているようだ。
platohomeの下がからっぽ。
adbdがいない。

環境変数ANDROID_SWTの追記

この状態でddmsを起動してみる。

C:\Documents and Settings\KINNEKO>ddms
Exception in thread "main" java.lang.UnsupportedClassVersionError: com/android/archquery/Main (Unsupported major.minor version 49.0)
        at java.lang.ClassLoader.defineClass0(Native Method)
        at java.lang.ClassLoader.defineClass(Unknown Source)
        at java.security.SecureClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.access$100(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClassInternal(Unknown Source)
SWT folder '' does not exist.
Please set ANDROID_SWT to point to the folder containing swt.jar for your platform.

あ、環境変数の指定が追加されてたのだった...
Path設定したのと同じウインドウから、システム環境変数に新規追加。

ANDROID_SWT
C:\android-sdk-windows\tools\lib\x86

だったっけ。

C:\android-sdk-windows

でもエラーは出なくなった。
環境変数を変更したので、コマンドプロンプトは一度終わって再起動。
でも、ddmsを起動すると、残りのエラーはまだ出る。

Java環境の確認

C:\Documents and Settings\KINNEKO>ddms
Exception in thread "main" java.lang.UnsupportedClassVersionError: com/android/archquery/Main (Unsupported major.minor version 49.0)
        at java.lang.ClassLoader.defineClass0(Native Method)
        at java.lang.ClassLoader.defineClass(Unknown Source)
        at java.security.SecureClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.defineClass(Unknown Source)
        at java.net.URLClassLoader.access$100(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClassInternal(Unknown Source)

コントロールパネル-> JavaコントロールパネルでJava環境が入っているのを確認。


もし、まだJDKが入っていないときは、入れる必要がある。
http://www.oracle.com/technetwork/java/javase/downloads/index.html
JDKのダウンロードを選んで画面移動。
JDK7はまだ出たばかりなので、避けたほうが良さそう。
JDK6がいいだろう。


このXPって、64bitだったっけ?
システムのプロパティでVersion 2002と出るから、32bitだよなぁ...


Swing Walkerがないから?
http://java.net/projects/swingworker
右のDownloadsを選ぶ。
んー、jarの配布がない。
C:\android-sdk-windows\tools\lib\swing-worker-1.1はあるよ?
1.2じゃないとダメ?
いいんじゃね?


環境変数がダメかな?
ANDROID_SWTをC:\android-sdk-windows\tools\libにしてみる。
かわらず。


エラーをよく見れ!

Exception in thread "main" java.lang.UnsupportedClassVersionError: com/android/archquery/Main (Unsupported major.minor version 49.0)

単なるバージョンエラーじゃないの。
http://www.javaroad.jp/faq/faq_error2.htm#q7
コンパイル時と実行時のJavaのヴァージョン違いですか...
推奨のJDK1.5でないとダメっすか?
まぢで?

C:\Documents and Settings\KINNEKO>javac -version

あら、実行できない。これか?
Pathがおかしいかも。

C:\oracle\ora92\bin;C:\Program Files\Oracle\jre\1.3.1\bin;C:\Program Files\Oracle\jre\1.1.8\bin;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\android-sdk-windows\tools

なるほど、Oracleクライアントのために同梱のJREがPathにハードコードされていますよ。
しかも古い...

C:\Documents and Settings\KINNEKO>jre
Java(tm) Runtime Loader Version 1.1.8.16

ひどす。
太古だよ。


しかし、これを変更しちゃうわけにもいかない... orz

ddmsの改変

ddmsはbatなので編集する。

set java_exe=C:\Program Files\Java\jre6\bin\javaw.exe
set frameworkdir=C:\Program Files\Java\jre6\lib

ダメだな。
java.exeにしてもダメ。
元に戻してスクリプト中にpath設定を追記。oracle関係を除去したもの。

set path="%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\android-sdk-windows\tools"

保存して、ddms実行。

C:\Documents and Settings\KINNEKO>ddms

WARNING: Java not found in your path.
Checking if it's installed in C:\Program Files\Java instead.

Java was found at C:\Program Files\Java\jdk1.6.0_23\bin\java.exe.
Please consider adding it to your path:
- Under Windows XP, open Control Panel / System / Advanced / Environment Variabl
es
- Under Windows Vista or Windows 7, open Control Panel / System / Advanced Syste
m Settings / Environment Variables
At the end of the "Path" entry in "User variables", add the following:
  ;C:\Program Files\Java\jdk1.6.0_23\bin\java.exe

04:46:30 E/ddms: shutting down due to uncaught exception
04:46:30 E/ddms: org/eclipse/swt/graphics/FontData
java.lang.NoClassDefFoundError: org/eclipse/swt/graphics/FontData
        at com.android.ddms.PrefsDialog.setDefaults(PrefsDialog.java:209)
        at com.android.ddms.PrefsDialog.init(PrefsDialog.java:143)
        at com.android.ddms.Main.main(Main.java:70)
Caused by: java.lang.ClassNotFoundException: org.eclipse.swt.graphics.FontData
        at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
        ... 3 more

ちょっと進んだ。
え"、Eclips?
やっぱ、必須ですか?
いや、そんなわけはない。


とりあえず、前半のワーニングを取り除くのに、メッセージの言うとおりddmsを変更する。

set path="%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\android-sdk-windows\tools;C:\Program Files\Java\jdk1.6.0_23\bin\java.exe"

結果、変わらず。
バッチファイルを読むと、呼び出しているfind_java.batが外バッチなので、環境変数を引き継がないようだ。
実害はないので放置する。

間違い発見... orz

メッセージを見直す。
あ。swtか。それならここだな。

ANDROID_SWT
C:\android-sdk-windows\tools\lib\x86\

ddmsを起動する。
をを、ウインドウ起動してきた。
adbないエラーが出る。
ようやく予想の範囲の流れに戻った。

adb.exeのインストール

エラーはこんなの。ウインド起動時にも同じ内容のダイアログが出る。

06:04:10 E/adb: Failed to get the adb version: Cannot run program "C:\ANDROI~1\tools\adb": CreateProcess error=2, ?w?????t?@?

さて、最近は、Eclipseプラグインマネージャから操作してADT入れるのが前提なんだよな...
Eclipseを入れないのが目標なので、今回はSDK Manager.exeを使って落とす。
SDK Managerを起動すると、インデックスの更新チェックに行く。
エラー。データが取れない。


あ、ここ、proxy配下だわ。
java系のツールって、IEの設定拾ってくれないのでproxy設定は自動で行われない。
Android SDK and AVD ManagerのウインドウでSettingsを選んで、proxyの設定を行う。
ここでは、自動構成スクリプトを使っているので、proxyの設定は見えるところにない。
まずそのpacファイルを落とす。
http://proxy.local.in/proxy.pacのように、ブラウザで直に指定すると、ローカルに保管できる。
落としたpacファイルをエディタなどで開くと内部が読める。
アクセス先などによってproxyの設定が分かれているのがわかると思う。
使えそうなproxyサーバーとポート番号を抜いて、Android SDK and AVD Managerでproxy設定を入力する。
Available packagesを選んで、Android Repositoryにチェックを入れ、Refreshボタンを押す。
うまくいけば、リストが更新される。
うまくいかない場合は、httpsが通らないproxyかもしれないので、Settingsの"Force https://... sources to be fetched using http://..."にチェックを入れる。


更新された項目から、"Android SDK Platform-tools, revision X"にチェックを入れて、"Install Selected"を押す。
パッケージの概要とライセンスを表示するウインドウが表示されるので、確認してInstallボタンを押す。
途中、adbを起動するか確認するダイアログが表示される。どちらでもよい。
"Done. 1 package installed."と表示されたら、Closeボタンでウインドウを閉じ、Android SDK and AVD Managerも終わる。
C:\android-sdk-windows\platform-toolsにファイルができているのを確認する。


コマンドプロンプトを起動して、ddmsがエラーなく立ち上がれば完了。


あー、長かった。
普通は、こんなに苦労しないよ(^^;。
とりあえず、こんな妙な環境もあったということで、履歴に残しておきます。