月別アーカイブ: 2016年2月

【Android】HTTP Clientが使えなくなっている

Android端末からサーバにファイルを送る方法をネットで調べていると「HTTP Clinentを使えばできるよ!」的な記述が散見できます。あるサイトに習ってHTTP ClientをAndroid Studioに導入し、いざコードを打ち込んでみるとクラス名のところに打ち消し線が表示されビルドに失敗。

理由がわからず別バージョンを試してみたり他のサイトを参考にしたりしましたが徒労に終わり、半ば諦めつつネットを巡回していると「HTTP ClientはAndroid 6.0のリリースに伴い削除されました」との記載が!今までの時間はなんだったんだと落胆しながらも読み進めると、代わりにHTTPUrlConnectionやVolley、OKHttpといったクライアントを使えばHTTP Clientと同じようなことが出来ることがわかりました。

それぞれのコードを眺め、一番すっきりしているOKHttpを使おうと決めたのですが、これまたうまくいきません。Gitに公開されている公式のサンプルコードを参考にコードを書いて実行したところ、指定したURLへの接続はできていますが、ファイルのアップロードはできず途方に暮れています。

本当は解決してから記事にしたかったのですが、長いことハマっているので息抜きも兼ねて現状をまとめてみました。何かするたびに躓いていて先は長いです。

【Android Studio】エミュレータで仮想SDカードが使えなくてハマった

端末内の画像ファイルを使ってどうこうする処理を書き、その動作確認のためにエミュレータ内に画像ファイルを用意しようと試みたのですがここでどハマりしました。

pc上のファイルを転送するのは何やらめんどくさそうなので端末のカメラで写真を撮影してテストに使おうと思い、アプリを起動すると英語で「SDカードが刺さってないので保存できません」的なメッセージが。いくらシャッターボタンをクリックしても反応してくれません。

AVD Managerの各種設定を眺めてもSD関連の項目は見つからず、グーグルで検索してもヒットするのはEclipse関連のサイトばかり。どうしたらいいかわからず途方に暮れていましたが、「これだけクリティカルな問題なのに解説サイトが無いということは自分の環境に問題にあるのでは?」とふと思いHelp>checkUpdateでAndroid Studioをアップデート。 これだけではまだ不十分で、

C:\Users\ユーザネーム\AppData\Local\Android\sdk\SDK Manager.exe

を起動して「Install 〇Package」 をクリックし、その他必要な部品たちもアップデートしてあげる必要があります。

すべてのアップデートが終了後Android Studioを再起動し、Android Virtual Device Managerを立ち上げて新たなADVを作ります。設定を進めていくとそこにはSDCardの文字が!最新バージョンのAndrdoid StudioではADV作成時の設定がデフォルトのままでも仮想SDカードが使えるようです。

その代わりカメラ機能を使うには初期設定時の「Android Virtual Device」と表示されている画面で「Show Advanced Setting」をクリックして「Camera」の項目を「None」から「Emulated」に変更しなければなりません。

上記の設定を終えてエミュレータを起動しカメラアプリのシャッターを押すと軽快なシャッター音が鳴り響きました。この音が聞きたかった!

これでようやくエミュレータを使ってテストができるようになりました。