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を設定しなおす。

2012/03/06

EOS Kiss X5の動画撮影にPCから取り込んだピクチャースタイルファイルを登録する方法

EOS Kiss X5の動画撮影において、PCから取り込んだピクチャースタイルファイルを登録する方法を簡単にまとめました。


■要点
  • 動画撮影には、直接、ピクチャースタイルをファイルを選択して適用することはできない
  • 写真撮影の方でピクチャースタイルファイルを登録しておき、そのあと動画撮影にも適用する
  • ユーザー設定に追加できるファイルは合計3つ。写真撮影と動画撮影で共用している


■手順

1. 「EOS Utility」を起動して、メイン画面で「カメラの設定/リモート撮影」をクリックし、別ウィンドウにおいてカメラアイコンをクリックする。

2.モードダイヤルを応用撮影ゾーンに合わせて、動画撮影で使用したいピクチャースタイルファイルをユーザー設定1~3のいずれかに登録する。

3.モードダイヤルを動画撮影にきりかえ、「ユーザー設定登録」から1で登録したピクチャースタイルファイルを選択する。


以上。

少し掘り下げたものを以下にまとめる。

■詳細

▲写真撮影でピクチャースタイルファイルを登録

オフィシャルサイト キヤノン:ピクチャースタイル内にあるピクチャースタイルファイル→ピクチャースタイルファイルの使い方のページに、写真撮影についてのピクチャースタイルファイルの設定方法の手順が書いてある。
その際の注意点は、モードダイヤルを応用撮影ゾーン(P, Tv, Av, M, A-DEP)に合わせておく


▲動画撮影に登録

モードダイヤルを動画撮影に合わせると、動画撮影の設定を行うことができる。
「ユーザー設定登録」をクリックし、「ピクチャースタイルファイルの登録」を表示する。しかし、フォルダアイコンが使用不可になっているので、直接PCからファイルを選択して登録するということができない。

▲ユーザー設定

ピクチャースタイルのユーザー設定にファイルから追加できるのは3つまで。写真撮影に3つ、動画撮影に3つというようにファイルから追加することはできない。
ただし、写真撮影のユーザー登録1にピクチャースタイルファイルから登録したものを設定し、動画撮影のユーザー登録1には「オート、スタンダード、ポートレート、風景、ニュートラル、忠実設定、モノクロ」などから選択・カスタマイズしたものを登録することは可能なようである。



ピクチャースタイルファイルは、キヤノンオフィシャルサイトからダウロードできるほか、いろいろな人が作成して公開しているようで、インターネットを検索するとあちこちで入手できます。


---
今回、方法を書いてあるサイトが見当たらなかったのでとりあえずまとめてみましたが、カメラや映像の世界は奥が深すぎてさっぱり分からない、そんな状況です。 。

2011/05/26

一年越しの解決!? Windows Live ムービーメーカー 2011 で動画と音楽が再生できない問題の対処法

(2013/12/26追加)
この記事は2011年に書いてる途中で、下書きのままでした。問題が再発した覚えがあるので下書きのままだったと思いますが(すべてうろ覚え)、何かしら解決の糸口になるかもしれませんので、公開します。

以下は当時まとめたままの記事です。
---

 以前書いたWindows Live ムービーメーカー2011でmp3形式の音楽ファイルを利用すると、うまく音楽が再生されない問題に遭遇していた(詳細は下記リンク先を参照)。

Windows Live ムービーメーカー 2011 で動画と音楽が再生できない



mp3形式の音楽ファイルの「プロパティ→詳細」に書かれている文字(文字化けだったり)によってうまく動作しなかったのではと推測し、試しに確認してみた結果を簡単にまとめる。


結果は予想通りで、プロパティにある文字列が悪さをしていたようである。






1.まずは状況を再現できるか確認。
 音楽を設定したあとにプロジェクトを保存して一度Windows Live ムービーメーカー2011を終了すると同様の結果になりました。



2.プロパティの詳細にある
そこで、音楽ファイルの「プロパティの詳細」にある情報をすべて削除して、新しく音楽を設定してみたところ、きちんと音楽が再生されるようになった。



Windows Live ムービーメーカー2011のプロジェクトファイルはXMLファイルで 記述されている。
また、音楽ファイルについてはプロパティの詳細にある情報までプロジェクトファイルに記録されている。
そのため、「プロパティの詳細」の文字列にWindows Live ムービーメーカー2011にとって適切でない文字列(例えば、文字化け、など)があると、プロジェクトを改めて開いたときにはうまく音楽を読み込めなくなってしまうようである。

2011/02/16

WindowsでAndroidのソースコードをブラウザ上で入手する方法

Androidのソースコードを入手するには、LinuxかMac上でGitを用いて行わなければならないため、Windows上で入手するためには仮想OSなどを利用してLinuxなどの環境を用意する必要があります。

ソースをコンパイルするつもりもなく、ソースコードを読みたいだけの場合には、上記の手順で入手するのは至って面倒です。

そこで、Windows上で簡単にAndroidのソースコードを入手する方法として、ブラウザ上でGitを利用できる方法ががあります。Githubというサイトです。

その中に、Androidのリポジトリがあります(ソースコードはリポジトリ別に登録されています)。
Github(Android)

あとは、このサイトから、欲しいソースコードをダウンロードすればOKです。

それだけなので、Linuxを扱ったことがない方でも手軽にできます。


注意点としては、こちらによると、
公式ではない為、最新のものがUPされているかどうかは不明です。
とのことです。が、そのあとに
ただ、用途によってはこれで十分ですし、なにより手軽であり、必要なものだけを取得できるので、repoを使うよりこちらで十分という人は多いのではないでしょうか。
 という風に続いていますし、私も利用してそう感じました。

■参考サイト

2011/02/12

Bitmapについて途中まで分かったことをメモ

■作成時の疑問点

BitmapFactory.decodeResource()で作成したビットマップはその時点では幅や,高さのサイズなどがきちんと入っていないので、Bitmap.createBitmap()でそのビットマップを元に新たにビットマップを作成しようするとエラーがでる。

一度ビットマップをgetWidth()とかするとサイズが入ったけど、そういうものなのだろうか?

違う気がするけど、もしかしたら、Bitmapにも、Swingでいえばvalidate()みたいなものをしないといけないとか?

今のところ確定していないのでメモしときます。


■エラーについて
Bitmap.createBitmap()でもとのビットマップの大きさより大きい値を設定した場合、IllegalArgumentExceptionが発生する。

 java.lang.IllegalArgumentException: y + height must be <= bitmap.height()
    at android.graphics.Bitmap.createBitmap(Bitmap.java:404)
    at android.graphics.Bitmap.createBitmap(Bitmap.java:374)

【参考サイト】
Bitmap | Android Developers
http://developer.android.com/intl/ja/reference/android/graphics/Bitmap.html

2011/01/28

eclipseでソースコードを保存したときに、空の行のインデントが自動で削除されないようにする方法

eclipseでソースコードを保存したときに、空の行のインデントが自動で削除されることがある。

空白行はそのまま残ってほしい身としては、この設定は意外とストレスを感じていましたが(だいぶ慣れたけど)、ようやく残したままにする設定が分かったのでメモ。
ここで使用しているeclipseは、Pleadesのeclipse3.5.2です。

■AnyEdit ツールの設定が要因

  1. "ウィンドウ"タブ->の"設定"を選択し、"設定ウィンドウ"を表示する。
  2. "一般->エディター->AnyEdit ツール"を選択し、"AnyEdit ツール"を開く。
  3. "自動変換"タブにある"エディター・バッファーが保管される前に..."の"末尾の空白を除去"のチェックを外す。
  4. "OK"ボタンをクリックして変更を反映させる。

■保管アクションの追加アクションが要因

"追加アクション"にチェックが入っており、"すべての行末の空白を削除"となっている場合。


  1. "ウィンドウ"タブ->"設定"を選択し、"設定ウィンドウ"を表示する。
  2. "Java->エディター->保管アクション"にある構成ボタンをクリックし"追加保管アクションウィンドウ"を表示する。
  3. "コード編成"タブ->"フォーマッター"にある"すべての行"から"空行を無視"に設定する。
  4. "OK"ボタンをクリックし、"適用"ボタンをクリックして変更を反映させる。

■フォーマッターが要因

  1. "ウィンドウ"タブ->"設定"を選択し、"設定ウィンドウ"を表示する。
  2. "Java->コード・スタイル->フォーマッター"にある編集ボタンをクリックする。
  3. "インテント"タブを選択し、"インデント"の"空の行"にチェックを入れる。
  4. あとは"適用"ボタンを押せば空の行のインデントがそのままで保存されるようになる。

逆に、チェックを外せば、ファイル保存時に空の行のインデントが自動で削除される。


で試してみたけど、フォーマット(Ctrl+Shift+F)を使ったときには空の行のインデントがそのままで保存されることもあるが、ファイル保存時にはどうしても削除されてしまう。(2012/05/15追記)
"プレビュー"画面には空の行のインデントがそのままで保存されているのだけど、どうもうまくいかない



なので、(いろいろと試行錯誤してみたけども)とりあえず保管時にはフォーマッターが作動しないようにすることにした。

■保管アクションのソース・コードのフォーマットが要因
"ソース・コードのフォーマット"にチェックが入っている場合。
  1. "ウィンドウ"タブ->"設定"を選択し、"設定ウィンドウ"を表示する。
  2. "Java->エディター->保管アクション"にある"ソース・コードのフォーマット"のチェックを外す。
  3. "適用"ボタンをクリックして変更を反映させる。


以上の設定をすれば、ファイル保管時に空の行のインデントがそのままで保存されるようになる。


と、ここまでやったのはいいけど、容量の厳しい組み込み系で開発する場合は、空の行のインデントは削除したほうが容量削減のためには良いのかもしれません。ほんと微々たるものだろうけど。ProGuardがこれもやってくれるのかな。(2013/10/25 削除)
それとも、バイトコード作成時になくなるのだろうか。


そこら辺はちょっと分からないけど、空の行のインデントが削除されてもそこまで不自由してなかったし(Enterキー押せば自動でインデントが作成される)、ストレスを感じていたのは何故削除されるのか分からなかったためなので、どっちでもいいと思った。


新たに、フォーマッターの設定がうまくいっていないのが謎ができたけど。。