Android Studio 0.52 で エミュレータを起動するまでにハマったところ

https://github.com/mixi-inc/AndroidTraining で、サンプルプロジェクト実行までに色々ハマったのでメモ。
Android Studio 0.52を使用。

AVD Manager でデバイス追加ができない

具体的には AVD Manager の OK ボタンが押せない。
Android SDK 22.6 のバグの模様。 [参考 java - Cannot create or edit Android Virtual Devices (AVD) from Eclipse, ADT 22.6 - Stack Overflow]
Android Studio 0.52 付属の Android SDK は 22.6.2 で、このバグが残っている。

解決法

Android SDK 22.6.4 では修正されているようなので、 SDK Manager からアップデートして解決。

エミュレータにアプリを転送する際にエラー

アプリケーションを run すると下記のエラーが出る。

Error: Could not access the Package Manager.  Is the system running?
解決法

エミュレータの電源が入ってないので、エミュレータの電源ボタンマークを長押しして、電源をいれる。

現在

Gradle 楽しい✌ ('ω' ✌ )三 ✌ ('ω') ✌ 三( ✌ 'ω') ✌

WindowsのSassでエラーになる時

Windows で Sass を使おうとすると以下のようなエラーが出ることがある。
Encoding::UndefinedConversionError on line ["NUMBER"] of C: "\x[HEX-CODE]\x[HEX-CODE]" from Windows-31J to UTF-8

この対策として、コマンドプロンプトの文字エンコーディングUTF-8にすることが挙げられている。以下のコマンドを実行することでできる。

> set LANG=ja_JP.UTF-8

しかしこれでも同じエラーが出ることがある。コマンドプロンプト自体のエンコードは変わっていない場合だ。
その時は以下のコマンドを実行しよう。(一時的に画面がおかしくなるが、 compass w するのに支障はない。また、別のコマンドプロンプトを開けばもとの状態になっている。)

> chcp 65001

この問題で4時間ハマってしまった。

結論

compass_watch.batって名前のファイルに次のように書いて使ってる。

chcp 65001
compass w

簡単でしょ?

参考

Sass および Compass については以下の記事が分かりやすかった。

gem を使った Sass のインストールで SSL なんとかってエラーになる時は以下の記事を参考に。

File::move() は存在してない。

FuelPHP のバージョンは 1.6 です。


ドキュメントの File_Handler_File::move() には

The move method is a shortcut to File::move.

http://fuelphp.com/docs/classes/file/handlers.html#/method_file_move

つまり File::move() のショートカットだと書かれている。
しかし File::move() は存在してない。


まあ普通に File_Handler_File::move() を使えばいいだけなんだけど、
何故無いんだろう? File::rename() で同じ事ができるから?

FuelPHP1.6 の Orm\Model::find() で取得した Model からデータを取り出す。

$entry = Model_Hoge::find($id);

とした時に、レコードを連想配列で取り出すには to_array()を使う。
これでViewに渡したりできるようになる。

$entry = Model_Hoge::find($id);
$record = $entry->to_array();
return Response::forge(View::forge('view', $record));

基本的なところだと思うけど、なかなか情報が出てこなくてハマった。


ちなみに where とかで取り出した時はget()を使う。
参考: CRUD - Orm Package - FuelPHP ドキュメント

FuelPHP1.6 の oil generate model で SET や ENUM 型のカラムを作る

MySQL は 5.5.31-0ubuntu0.12.04.2

$ oil generate model table_name column1:set['one','two','three'] column2:enum['a','b','c']

とか。

重要なのは要素の間にスペースを入れないこと。

例えば

column1:set['one', 'two', 'three']

って書いちゃうと、中身が空のSETになる。