ラベル android の投稿を表示しています。 すべての投稿を表示
ラベル android の投稿を表示しています。 すべての投稿を表示

2015年11月8日日曜日

El CapitanでAndroidStudioがクラッシュする際の対策

El Capitanになんとなくアップグレードしたのち、Androidアプリを公開しようとしてGenerate Signed Apkを実行したところ、キーストア周りでクラッシュしまくるという謎現象に遭遇しました。

AndroidStudioを1.4から1.4.1にバージョンアップしてみたところ、今度は起動しなくなってしまったため、以下のブログを参考にAndroidStudioを再インストールしました。
http://dev.classmethod.jp/smartphone/android/android-studio-mac-uninstall/


rm -rf /Applications/Android\ Studio.app
rm -rf ~/Library/Preferences/AndroidStudioPreview
rm -rf ~/Library/Preferences/com.google.android.studio.plist
rm -rf ~/Library/Application\ Support/AndroidStudioPreview
rm -rf ~/Library/Caches/AndroidStudioPreview

その後、再度全てをインストールしなおし、少なくとも起動させることには成功。

からの、
https://support.apple.com/kb/DL1572?locale=ja_JP
より、試しにJava6をMacにインストールしなおした後に再度Generate Signed Apkを実行してみたところ、クラッシュせずにスムーズに書き出しができました。

というわけで、同様の問題に困った場合にはお試しください。

2013年3月28日木曜日

Androidでadbが繋がらないときの試すことリスト

Android端末を用いてプログラムを書いているとよく起こるのが、 なんだかよくわからないけれどもadbでデバイスと繋がらないぞ?という問題。
 そんなときに試してみるべきことをまとめてみました。

1.一回端末を抜いてさし直す

2.端末を再起動してみる

3.端末のデバッグ実行を一回offにしてからonにし直す
(Android4.0以降は開発者メニューから、2.x系はアプリケーションからできます。)

4.ターミナルから
$ adb kill-server
$ adb start-server
$ adb devices
を実行して、デバイスが検出されることを確認する

5.端末のVendorIDが~/.android/adb_usb.iniに書いてあるか確認する
書いてなかった場合は
# ANDROID 3RD PARTY USB VENDOR ID LIST -- DO NOT EDIT.
# USE 'android update adb' TO GENERATE.
# 1 USB VENDOR ID PER LINE.
#↓のように16進数でばすっと書いてみる
0x9999
0x1000

6.ケーブルが壊れていないか確認する
同じケーブルで別の端末を試すか、ケーブル自体を変えてみるとよいと思います。


意外と忘れがちなのがVendorIDの登録確認で、一回書いておけばオッケーかと思いきや、
新しいSDKを入れたりするとなぜか消えていたりするので、あまり油断なりません。
さらにこれでもなおらないときには、N-06Cの繋がらない問題と同じ問題だったりするかもしれないので、kextをいい感じにいじって試してみてください。

おしまい。

2012年4月10日火曜日

Android 4.0 ICS tunaとmaguroとtoroの違い

基本全部Galaxy Nexusの関連ファイルで、maguroがGSM/HSPA+、toroがCDMA/LTEのカスタマイズ。tunaがその共通部分。

http://groups.google.com/group/android-building/browse_thread/thread/ab34b1144a96bcd8

tuna+maguroでGSM/HSPA+のGalaxy Nexusということ。

toroの方が脂が乗っているので、ファイルもでかい。

ちなみに魚の名前は前からコードネームとして利用されており、エミュレータはgoldfish(金魚)、G1はtrout(マス)、Nexus Oneはmahimahi(シイラ)、Nexus Sはherring(ニシン)、XOOMはstingray(アカエイ)とのこと。

2012年4月9日月曜日

Mac OS X LionでAndroid ICSをビルドする

メモ。

とにかくはまるしわからない。何がいけなかもわからない。
http://blog.sola-dolphin-1.net/archives/4059847.html
ここらへんを参考に。

途中ビルドにこけて一番はまったところは
https://groups.google.com/forum/#!topic/android-building/yd8I2aMbZZE
のlibbccを少し前のバージョンに戻すことで解決。

結局ビルドしたROMはカーネルを再コンパイルしないと上手く動かないそうなので、カーネルコンパイル中。

その他はまったら試すこと

  1. エミュレーターをコンパイルしない
    • 実機で確認するのであれば、どうせエミュレーターはいらないだろうってことで、external/qemu/Android.mkの中身をざっくりコメントアウト。行数はあまりないので、楽々コメントアウトできます。
  2. libSDLをがんばってインストールしてみる
    • libSDLの1.2.15では、Lionでのビルドができるようになっているので、ちゃんとやればインストールできます。
    • macportsからインストールしようとして、glib2でこける場合は、sudo port clean glib2で一度消してから、再インストールしましょう。
    • さらにそのあと、libelfをdeactivateしろと言われる場合には、sudo port deactivate libelfで一旦無効にして、正常にインストールしてからsudo port activate libelfで元に戻せます
  3. 何回かコンパイルしてみる
    • 理由はよくわかりませんが、実際のROMを作るところ以外でこけている場合は、分散ビルドでビルドがいろんな順番で進むため(?)何度もコンパイルしているといつの間にかROMができています。もしかしたら自分のその間の試行錯誤でうまくいったのかもしれませんが。。
    • とりあえず、成功した人は最後までやめなかった人だ、ということなので。
    • 少なくとも自分は成功しているので、Mac OS X LionでAndroid ICSをビルドすることは不可能ではありません

2012年4月6日金曜日

Android 4.0 でNavigationBarが表示されているか判定する方法

ICSのNavigationBarが画面内に表示されているかどうかを取得する方法が、あんまりみつからなかったのでメモ

Activityなどのなかで、

public static boolean isNavigationBarVisible(){
    return !ViewConfigration.get(this).hasPermanentMenuKey();
}

でとれます。

ViewConfigurationはstaticメソッドのgetにContextを引数として渡すことでインスタンスを取得でき、そのhasPermanentMenuKeyメソッドは、端末にビルトインされたメニューボタンがあるかどうかを返します。

なので、その否定がNavigationBarの有無と一致します。

2012年2月28日火曜日

RSD mode 3で文鎮になったxoomをはさみと輪ゴムとアルミホイルで復活させる!

いろいろいじくれることでおなじみのXoomですが、文鎮化してしまっていたので、Motorolaのファクトリーケーブル(factory cable)とやらを自作して復活させました。
ファクトリーケーブルというのは、通常のUSBケーブルとは少し異なる、端末をベンダー独自のモードに入らせるためのケーブルで、PSPで言うところのパンドラバッテリーみたいなものでしょうかね。Samsung端末にはダウンロードモードに入れるためのUSBケーブル等もあるそうですが。
で、Motorolaの場合は、micro USBの1ピンと4ピンをショートさせるだけでできます。
通常のmicro USBでは、1ピンは5Vで、4ピンはIDなので、モトローラの端末は4ピンにHighが来ているときだけ特別なモードに入るようです。
作るのに必要な道具は以下
はさみ、輪ゴム、アルミホイル
では手順を。
  1. micro USBの端子をはさみで丁寧に切り開く
  2. なかのケーブルが見えるまで、丁寧に金属のパーツやゴムを外す
  3. アルミホイルを5mm x 50mmくらいの長さに切り取る
  4. アルミホイルを折り畳みつつつぶして、糸のようにする。はじめのうちは折り畳み、これ以上たためないよ!ってところで親指と人差し指でよりよりするのがよい。
  5. 1ピンに繋がってる線の導線部分にアルミホイルを巻き付ける。通常5Vに繋がるケーブルは赤なので、チェックするとよい。
  6. 4ピンのあたりにアルミホイルを近づける。セロテープがあれば仮止めしておくとよい。たいてい4ピンには何も線が繋がっていない。
  7. ここだ、と思ったところで輪ゴムなどでしっかりとアルミホイルとピンを固定する。
  8. 完成
普通にはんだごてがある人はそれでやってください。僕はちょうど手元にはさみと輪ゴムとアルミホイルしかなかったので、それで頑張りました。
Xoomに接続し、電源+ボリューム上キーで再起動後、ボリューム下を押してあげると、今まで入れなかったfastbootモードに入ることができます。
うまくケーブルが作成できていないと、パソコンにつないだときに、電流を利用しすぎているのでUSBデバイスを停止しました、みたいなメッセージが出ますが、そんなに気にしなくても大丈夫です。

2011年8月25日木曜日

Mac OS X LionからN-06C Mediasにadbで接続する方法

Snow Leopardでは特に何もせずにadbで接続できていた
Mediasが、Lionにしたとたんに急にadbでつなぐことができなく
なってしまったので、Lion対応Medias用USBドライバ(もどき)の
カーネルエクステンションを作ってみました。

※2012/03/01 変更
めんどいので、とりあえず
http://8kpx.com/android/archive/download.php
からダウンロードしてください。

で、ちゃんと使えたらカンパください。
オプション



このカーネルエクステンションを解凍して
/System/Library/Extensions/
以下に配置し、ターミナルから

$sudo chown -R root:wheel /System/Library/Extensions/N06CADBDriver.kext
$sudo kextload /System/Library/Extensions/N06CADBDriver.kext

と実行すると、Snow Leopardと同じようにMediasがadbから繋がる
ようになります。ちょーべんり。

/System/Library/Extensionsをいじるのは、あっさりカーネルパニックになったりするので、
自己責任で導入してください。


-------以下詳細---------
この問題の原因は、MediasのUSBデスクリプタのbDeviceClassが、本来0のはずが、2になっており、
正しいドライバが読み込めなくなってしまっていたことでした。

なので、このカーネルエクステンションでは、bDeviceClassが2でかつデバイスがMediasの場合に、
本来のドライバ(IOUSBCompositeDriver)を読み込むという設定をしております。(実際にはplistに書いただけ)

デバイスの判定には、具体的にはidProduct, idVendorという二つのパラメータを利用しており、
この値を書き換えることで、Medias以外のデバイスで、同様の問題が発生した場合にも対応可能です。