2012/04/29

eclipseのコンソールに出力される情報をログとして自動保存する方法

eclipseには、コンソールに出力される情報をログとしてファイルに自動保存する方法があります。

以前使っていてとても便利だったので、Androidアプリの開発にも使おうと思ったのですが、ファイルとして保存ができませんでした。JApplet や JApplication ではきちんと保存できたので何かしらありそうです。


■手順
  1. 「実行」タブ>「実行の構成」を選択し、「実行構成」ウィンドウを表示する。
  2. 対象のアプリケーションにある「共通」タブを選択し、「標準入出力」にある「ファイル」 にチェックを入れる(「コンソールに割り当て」にもチェックを入れておく)。
  3. 「ファイル・システム」を選択して、保存先のフォルダファイル名を決めて「保存」ボタンをクリックする。
  4. 「追加」にチェックを入れると、コンソールに表示された文字列がファイルに追加して保存される。
  5.  「ファイル」に設定したフルパスが表示されていることを確認し、「適用」ボタンをクリックすれば、設定が完了する。

※手順3では、「変数」から選んでもよい。"${workspace_loc}\console.log"とすると、ワークスペース直下に"console.log"というファイル名で保存される。



Androidアプリの開発ではLogCatの方がコンソールに出力される情報よりも重要とは思いますが、エミュレータの起動周りでのエラーの原因を調べるなどに便利なので利用できると良いのですが。。



2012/04/03

「Proguard returned with error code 1. See consle」エラーの解消方法

Androidアプリを「Export Signed Application Package」で作成しようとしたときに、「Proguard returned with error code 1. See consle」エラーが出た場合の解消方法をメモする。
Proguardを使用するとエラーが発生し、Proguardを使用しなければエラーが発生しなかった。
したがって、なぜProguardを使用するとエラーが発生するのかを調べ、その解決方法を探った。

○解決方法
先に結論を述べると、Proguardが使用するであろうファイルのフルパスにはスペース及び"括弧"が入らないようにする。



□エラー内容

C:\dev\android\android-sdk-windows\tools\proguard\bin\proguard.bat @C:\dev\eclipse3.6.2\workspace\SampleProject\proguard.cfg @C:\Users\UserName\AppData\Loca\Temp\android_4422402008691336988.pro
Proguard returned with error code 1. See console
Refreshing resource folders.



□原因の探し方

例:
"C:\Users\UserName\AppData\Local\Temp\android_4422402008691336988.pro"
※実際のファイルはコンソールに表示されている"android_数字.pro"を開く。

(エラーがコンソールに表示されていなかった場合は、「ウィンドウ->設定」を選択して「設定」を開く。「Android->ビルド」をクリックし、「ビルド出力」を「詳細」を選択してOKボタンを押す。これで表示できる設定になる。)

中身はこんな感じ。

  -injars C:\Users\ユーザ名\AppData\Local\Temp\android_925785587453515452.jar;C:\dev\android\AdSDK\adSdk(20120318).jar
  -outjars C:\Users\ユーザ名\AppData\Local\Temp\android_8279953230116289247.jar
  -libraryjars C:\dev\android\android-sdk-windows\platforms\android-7\android.jar
  -dump C:\dev\eclipse3.6.2\workspace\SampleProject\proguard\dump.txt
  -printseeds C:\dev\eclipse3.6.2\workspace\SampleProject\proguard\seeds.txt
  -printusage C:\dev\eclipse3.6.2\workspace\SampleProject\proguard\usage.txt
  -printmapping C:\dev\eclipse3.6.2\workspace\SampleProject\proguard\mapping.txt


jar読み込みで"adSdk(20120318).jar"の括弧が入っていたのでエラーが出てしまっていた。


■解決手順
  1.jarのパスから括弧を取り除く(ファイル名やフォルダ名を変更する)。
  2.「プロジェクト->プロパティ」のライブラリーにおいて、変更したjarを設定しなおす。