カテゴリー: Androidアプリ開発

Eclipse起動時にAndroid SDK コンテンツ・ローダー 0%で固まる

 

先日ソフトウェアのアップデート&最新のSDK(API19)をインストールした後、Eclipse起動時に右下に「Android SDK コンテンツ・ローダー:(0%)」と表示されたまま待っても待っても一向に進まず、固まるという現象が発生しました。
通常終了ができないので、仕方なく強制終了しました。

Android SDK コンテンツ・ローダー 0%

(さらに…)

アプリ内からFacebookに投稿

 

アプリ内からFacebookへ投稿する場合について。

Facebookから提供されているsample appを参照しながら処理を盛り込んでみたのですが、
うまくいなかい部分があり、少し手を加えたのでその備忘録です。

下記ページにFacebook SDKのインストールからプロジェクトの作成までの手順が載っています。
Android用Facebook SDKスタートガイド

今回作成したのは、ログインボタンとメッセージ入力欄と投稿ボタンだけのシンプルな画面です。

facebookへの投稿画面

(さらに…)

ネットワーク通信ライブラリ Volley

 

前回、非同期通信を行う為のAsyncTaskについての記事を書いたのですが、
今回はネットワーク通信用ライブラリ:Volleyについての備忘録です。

Google I/O 2013 : Volley: Easy, Fast Networking for Android
公式リポジトリ : https://android.googlesource.com/platform/frameworks/volley/

 

Volleyのライブラリを利用するためには、Gitを使ってプロジェクトを取得し、Androidプロジェクトとしてインポートする必要があります。

 

サーバーに画像をアップロードさせたいので、今回も multipart の場合についてです。

(さらに…)

非同期通信 (AsyncTask)

 

AndroidアプリからサーバーにHTTP通信する場合の備忘録です。
(androidはまだ勉強を始めたばかりで理解が十分でないので、間違っている部分も多々あると思います。
間違いに気づいた時点で修正していくつもりです。)

 

Androidアプリでサーバーと非同期通信処理を行うためには、AsyncTaskを継承したクラスを作成します。
AsyncTaskに用意されている以下のメソッドを必要に応じてオーバーライドします。
(1)onPreExecute()   ・・・ タスク実行前にUIスレッドで実行される。事前準備の処理を実装する。(例:プログレスバー表示)
(2)doInBackground()  ・・・ バックグラウンドスレッドで実行される。実装必須。
(3)onProgressUpdate() ・・・ doInBackGround()でpublishProgress()が呼ばれた場合に実行される。(例:進行状況表示)
(4)onPostExecute()   ・・・ バックグラウンド処理が終了したときに実行される。結果をUIスレッドに反映する処理を実装する。

今回は、サーバーにPOSTして結果をJSONもしくは画像を受信することを想定しているので
レスポンスはどちらでも対応できるようにInputStreamを返却しています。

サーバーと通信を行うクラスは、マルチパート形式に対応しています。
マルチパート形式に対応するためには、以下のライブラリの追加が必要です。
・httpmime-x.x.x.jar
http://hc.apache.org/downloads.cgi ⇒ HttpClient x.x.x (GA) の項目よりダウンロード
(今回私は、httpmime-4.3.3.jarとhttpcore-4.3.2.jarを追加しました。)

非同期で通信してレスポンスを起動元に返却するためにコールバックを定義しています。

(さらに…)

エミュレータからインターネット接続できない場合の対処方法

 

※本記事は、旧ブログからの再掲です。

Androidエミュレータからインターネット接続ができない場合の対処方法です。

これまでのところ、以下2点の場合にインターネット接続ができないことがありました。

(1)DNS設定が原因の場合
(2)SSL接続時の証明書が原因の場合

 

emulator_internet_err_1


 
(1)DNS設定が原因の場合

ネットで調べてみたところ、何らかの要因でDNSサーバーにアクセスできなくなっているとのことでした。
この場合には、DNSサーバーを設定すれば良いようです。 (さらに…)