AndoroidStudioのAVDのkvmに関わるエラーでハマった件
先の記事、「AndoroidのAVDのためにcpu-checkerしようとしたらmysql-serverがエラー」はそもそも以下のAndroidDeviceManagerでAndroid6.0の端末をクリックした際に以下のエラーメッセージが表示されたことから始まった。
KVM is required to run this AVD. /dev/kvm is not found. Enable VT-x in your BIOS security settings, ensure that your Linux distro has working KVM module.
ここにはkvmが無いとのことなのでkvmを以下のサイトを参考にインストール。
How to Install KVM and Create Virtual Machines on Ubuntu
egrep -c ‘(svm|vmx)’ /proc/cpuinfo sudo apt-get install qemu-kvm libvirt-bin bridge-utils virt-manager sudo adduser name libvirtd virsh -c qemu:///system list
ここまで記事通り。ただし、この後のCreating Virtual Machinesでまたエラーが発生。
[New VM]で新しい仮想環境を作ろうとしてもできなかった。Errorの内容は忘れてしまったが、とにかく「kvmを利用できません」みたいな内容だった。
以下のサイトを参考に調べると
KVM と /proc/cpuinfo の微妙な関係 | CUBE SUGAR STORAGE
BIOSのCPUの設定でVMを許可しなきゃいけないらしいのでBIOS起動。
ASUSの場合、BIOSの最初の画面はこんな感じ。
最初は簡易設定画面らしいので[Advanced Mode](詳細設定?)へ移動
[詳細設定]→[詳細]→[CPUの設定]→[Intel VT(Intel Virtualization Technology)]を[有効]に設定。
[退出]→[保存してリセットする]を選択して再起動。
改めてAndroidStudioを起動し、エミュレータを起動したら件のエラーは出なくなった。
Stringの文字列中に複数個の文字列が一個でも含まれている場合、continueする
Q.$taisyoStringの文字列中に"ダメ"または"いらない"文字が含まれている場合、continueするphpプログラムを書きなさい。
A.
phpの文字列検出系関数の中で一番処理効率がいいのはstrpos関数らしいのでできるだけそれを使う。
- 回答1.一番シンプルif文だけ
const DAME_MOJI="ダメ"; const IRANAI_MOJI="いらない" if(strpos($taisyoString, self::DAME_MOJI) !== false or strpos($taisyoString, self::IRANAI_MOJI) !== false){ continue; }
- 回答2.php5.6からconstでarray使えるようになったらしいからarrayで定義
const HUYOU_MOJIS = array("ダメ","いらない"); foreach(self::HUYOU_MOJIS as $huyouMoji){ if(strpos($taisyoString, $huyouMoji) !== false){ continue 2; } }
- 回答3.preg_matchで判断。一番短くてすむ
const HUYOU_MOJIS = "ダメ|いらない"; if(preg_match($taisyoString, self::HUYOU_MOJIS) === 0){ continue; } //もちろん3項演算子でも可
and etc...