Eclipse Android Virtual Device(AVD) エミュレーターが動かない

Eclipse: Android Virtual Device(AVD) エミュレーターが動かない時

EclipseでAndroidのアプリ開発をしているとき、
Android Virtual Device(AVD)、エミュレーターが上手く動いてくれないことが何度もありました。

色々調べてみて分かったことをここにメモしておきます。

まず、Android Virtual Device(AVD) Managerを立ち上げて、Android Virtual Devices画面でCreateを押して新しいエミュレーター作成画面にいきます。

作成画面には多くの項目があり、最初は何をどうすればいいか訳が分からないと思います。
ここで何を選択して何を入力するかでエミュレーターが上手く動作するかが決まるので、一つ一つの項目にじっくり焦点を当てていきましょう。

◎AVD Name
 ここは迷わず、エミュレーターに好きな名前を付けましょう。

◎Devices
 作成しているAndroidプロジェクトに合わせて、使用したいAndroidの端末を選びましょう。タブレット等もあり、選べる端末が多いせいでどれを選べばいいのか分からない方もいると思います。とりあえずスマホで動くか試したい、という方はNexus5を選ぶといいです。

◎Target
 まず、作成しているAndroidプロジェクトのTargetを確認しましょう。
 確認方法は、該当のプロジェクトを右クリックしてプロパティを選択。左側にあるAndroidをクリックすると、右側にProject Build Targetという画面が出てターゲットが分かります。デフォルトだと自分がSDK Managerでインストールした最新のAPIレベルのものが選択されています。
 追記(6/5)
 AndroidとGoogleを選べますが、特別な理由が無い限りAndroidを選んでください。
 先ほどAndroid4.4W、APIレベル20をターゲットにしたらエミュレーターが上手く動かず、Android4.1.2、APIレベル16で試したら上手く動きました。
 困ったときはAPIレベルを下げてみるのも効果があるかもしれません。

◎CPU/ABI
 ここでは、先ほどのTargetでAPI Level15以下を選択した場合、ARMしか選択肢がありません。API Level16以上を選択した場合はIntel Atom(x86)がありますので選択してください。
 Intel Atom(x86)を使うにはSDK Managerの一番下にあるIntel x86 Emulator Accelerator(HAXM installer)をインストールする必要があります。SDKからインストールしたら、コンピューターにsdkが保存されているフォルダからsdk→extras→Hardware_Accelerated_Execution_Managerからintelhaxm-android.exeを実行してインストールを済ませてください。

◎Keyboard
 パソコンからのキーボードの入力をエミュレーターで動作させてるアプリで受け付けるかどうかという項目です。得に理由が無ければチェックは外していいです。

◎Skin
 エミュレーター画面の右側に電源ボタンやキーボード、ホームボタン等を表示させるかという項目です。得に理由が無ければNo skinを選択でいいです。画面がすっきりします。

◎Front Camera/Back Camera
 アプリ内でカメラの機能を使いたい場合を除き、デフォルトのNoneのままでいいです。

◎Memory Options
 こいつが曲者です。
 Deviceで最近の端末を選択した方はRAMの欄に2048や1907等が自動で入力されてると思います。RAMが768以上だと下に「RAMが768以上だと正常に動作しない~」といった内容の警告が出ます。なのでRAMは768以下に設定しましょう。低すぎても上手くいかないので512くらいを推奨します。
 VM Heapには値が低すぎると上手く動作しないことがあるので、デフォルトのままか128を推奨します。

◎Internal Storage
 内部ストレージはデフォルトのままでいいです。

◎SD Card
 これもアプリ上でSDカードを必要とする、という場面でない限り未入力でいいです。

◎Emulation Options
 これが最後の項目ですが、こいつは注意が必要です。
 デフォルトでは未選択になっていますが、TargetのAPIが14以上であればUse Host GPU、13以下であればSnapshotを選択したほうがよいようです。

困ったときには、Memory OptionsとEmulation Optionsが悪さをしている可能性が高いです。あとTargetもです。
数値を変えたり色々試してみてください。

あとは実体験なのですが、TargetをAPIレベル15以下にしていて上手く動作しないとき、TargetをAPIレベル16以上にしてCPU/ABIをIntel Atom(x86)にしたら上手くいくことがありました。
この際、APIレベル16以上のSDKをインストールするのと、Intel x86 Emulator Accelerator(HAXM installer)をインストールするのを忘れないでください。

皆さんのエミュレーターが正常に動作しますように。

by 芦野輝明
twitter→https://twitter.com/teriyakiegg

Android

EXCEL シートの移動のショートカット

Office2007

エクセルのシート数が多い場合、シートの移動を素早く行う方法です。

1.左下部のシートを移動させる矢印上で右クリックすると、シート名がポップアップされます。

2.「Ctrl + PageUp」あるいは「Ctrl + PageDown」でシート間を一つずつ移動できます。

EXCEL  (可視セルの選択)非表示としているセルをコピー対象としない

Office2007

【可視セルの選択】非表示としているセルをコピー対象としない

エクセルのコピー機能を使っているとデフォルトでは非表示となっているセルもコピー対象とします。
これを見えてるセル(可視セル)だけコピー対象とするような方法を紹介します。

  • EXCELでどのような現象が発生するかの説明します。>#r41a0fa0
  • 何ができるの?>#b62e499f
  • 「可視セルの選択」を利用する方法>#n91f6852
  • どんな時に使えるの?>#ma1450b3

EXCELでどのような現象が発生するかの説明します。

サンプル セルに以下の通りのデータがあったとします。
&ref(1.jpg);

上記サンプルの内、【B 200】のセルを非表示とします。
&ref(2.jpg);

【A 100 から C 300】のデータを含む範囲をコピーして
異なるセルに貼り付けると非表示となっている【B 200】もコピーした結果には
表示されます。
&ref(3.jpg);

何ができるの?

可視セルの選択を利用して上記オペレーションをすると非表示となっているセルはコピー結果には表示されません。

具体的には、【A 100 から C 300】のデータを含む範囲を選択後、画面右上にある
ツールバーから「可視セルの選択」ツールを押下してから
コピーすると非表示となっているセルはコピー対象とならない。
&ref(4.jpg);

 [可視セルの選択]を利用する方法

最終的には下図のようにツールバーに可視セルの選択ツールを登録します。
&ref(5.jpg);

ツールバーに登録するには、
EXCELメニューバー>表示>ツールバー>ユーザー設定
を選択していくと以下のようなポップアップが表示されますので
下図の①~④の通り選択していくと可視セルの選択が存在します。
これを任意のツールバーにドラッグ&ドロップして登録しましょう
&ref(6.jpg);

どんな時に使えるの?

このテクニックはサンプルのように対象データ数が少ない場合には
あまり効力を発揮しません。しかし、EXCELフィルタ機能などを利用して
大量のデータから表示するセルを絞っている場合などには非常に便利です。

また、フィルターとこの可視セルの選択を使えば、ある特定の文字列を含む
行だけを削除するなんて事も簡単に可能となります。
(EXCELでは、複数行を削除したい場合、選択範囲の中に非表示行があると
&color(#ff0000){非表示行も削除対象};としてしまいます。)

  • THANKS — {2011-02-09 (水) 19:56:03}

ERROR getting android label attribute attribute is not a string value

Android

ERROR getting android label attribute attribute is not a string value

やっと開発が終了してGoogle Play Developper Consoleからアプリをアップロードしたら次のようなエラーが…。

 アップロードできませんでした
 APK は 'aapt dump badging' では解析できませんでした。エラー出力:
 
 Failed to run aapt dump badging:
 W/ResourceType(30806): Failure getting entry for 0x7f040054 (t=3 e=84) in package 0 (error -75)
 ERROR getting 'android:label' attribute: attribute is not a string value
 
 ERROR getting android label attribute attribute is not a string value

エラーメッセージから察するに、AndroidManifest.xmlのlabelの値がない、ということらしい…

日本語言語ファイルのvalues-ja/strings.xmlには記述があっても、英語版のvalues/strings.xmlに記述がありませんでした。

values/strings.xmlにlabelにあるstringを全部追加して、修正できました★