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

2015年7月28日火曜日

AppCode で Eclipse のショートカットキーを使う方法

# ウェアラブルと関係ありません

ここ数日、現在 iOS のアプリ開発のために、Xcode でなく AppCode を使い始めました。
ただし私は Eclipse に慣れているため、AppCode のショートカットキーを覚えるのが大変つらい。

そこで考えたのが、IntelliJ/AndroidStudio から設定ファイルを移植しようという案。

結論としては、『IntelliJ IDEAのキーバインド設定をAppCodeでも共有しようとしたらかなりハマった件』の方のやりかたを参考にしつつもやりかたを変えたことで、移植することができました。



■やりかた
1) Eclipse のキーバインド設定 Keymap_EclipseMac.xml を こちら からダウンロード
2) 上記を AppCode のキーマップファイル保存先に設置

※私の場合の場所:
MacBook-Air-2:keymaps j-akita$ pwd
/Users/j-akita/Library/Preferences/appCode31/keymaps
MacBook-Air-2:keymaps j-akita$ ls
Keymap_EclipseMac.xml

※私の環境:
・AndroidStudio Al-141.2024585 (IntelliJ ではありません)
・AppCode3.1

3) AppCode を起動
4) Preferences を開いて、キーマップとして Eclipse (Mac OS X) を選択
5) ソースを開いてメソッドを選択して F3 を押すと、Eclipse と同じく定義先にジャンプ!! やった!!!

■解説
基本的には『IntelliJ IDEAのキーバインド設定をAppCodeでも共有しようとしたらかなりハマった件』のとおりなのですが、この通りに実施した場合、私の環境では AppCode を起動した時に

Cannot read scheme Keymap_Mac.xml from $ROOT_CONFIG$/keymaps Wrong keystroke=null action id=TestGestureAction keymap=Mac OS X 10.5+

などというエラーが出ました。
そこで、対応したのは
・Keymap_Mac.xml をコピーしないこと
・編集済みの Keymap_EclipseMac.xml をさらに編集して、parent="$default" にしたこと
となります。

※これでいいのかは不明ですが、とりあえず動いでいるようです。。。

# Android と iOS のアプリ開発を同じような環境で実施できるのは大変ありがたい。



---
2015/07/28 9:21 うっ、コメントアウトが効かない・・・?

2015年4月21日火曜日

AppleWatch のアプリ申請で ITMS-90363 発生時の対処

WatchKit のアプリをアップルに申請したところ、Xcode で ERROR ITMS-90363 "Invalid Info.plist key. The key 'CFBundleIcons~iPad in bundle ... is invalid." のエラーが発生しました。
ぐぐってもぜんぜん情報が出てこないので悩みました。


対処 /Solution

Xcode で CFBundleIcons を検索したところ plistファイル に CFBundleIcons~iPad が存在したため、このキーを削除したところ解決しました。

Because the "CFBundleIcons ~ iPad" in plist file where it was searched CFBundleIcons in Xcode was present, it was resolved where you delete this key.




というわけで、私のアプリはめでたく審査待ちとなりました。
# 一回くらいはリジェクトされるでしょうが・・・



2014年7月30日水曜日

【開発TIPS】Permission Denial: starting Intent { flg=0x10008000 cmp=<パッケージ>/.ActivityMainMenu } from null

Glassware の実装中に以下のような例外が発生しました。
症状としては、LiveCard をタップしてもメニューが表示されないという状態でした。

07-30 00:28:39.729: W/ActivityManager(514): Permission Denial: starting Intent { flg=0x10008000 cmp=<パッケージ>/.ActivityMainMenu } from null (pid=-1, uid=10036) not exported from uid 10092
07-30 00:28:39.729: W/ActivityManager(514): Unable to send startActivity intent
07-30 00:28:39.729: W/ActivityManager(514): java.lang.SecurityException: Permission Denial: starting Intent { flg=0x10008000 cmp=<パッケージ>/.ActivityMainMenu } from null (pid=-1, uid=10036) not exported from uid 10092
07-30 00:28:39.729: W/ActivityManager(514):     at com.android.server.am.ActivityStackSupervisor.startActivityLocked(ActivityStackSupervisor.java:1201)
07-30 00:28:39.729: W/ActivityManager(514):     at com.android.server.am.ActivityStackSupervisor.startActivityMayWait(ActivityStackSupervisor.java:756)
07-30 00:28:39.729: W/ActivityManager(514):     at com.android.server.am.ActivityManagerService.startActivityInPackage(ActivityManagerService.java:3312)
07-30 00:28:39.729: W/ActivityManager(514):     at com.android.server.am.PendingIntentRecord.sendInner(PendingIntentRecord.java:252)
07-30 00:28:39.729: W/ActivityManager(514):     at com.android.server.am.PendingIntentRecord.send(PendingIntentRecord.java:192)
07-30 00:28:39.729: W/ActivityManager(514):     at android.content.IIntentSender$Stub.onTransact(IIntentSender.java:64)
07-30 00:28:39.729: W/ActivityManager(514):     at android.os.Binder.execTransact(Binder.java:404)
07-30 00:28:39.729: W/ActivityManager(514):     at dalvik.system.NativeStart.run(Native Method)
07-30 00:28:39.736: W/AudioFlinger(124): uid 10022 tried to pass itself off as 10013



おかしいなと思ったら、AndroidManifest.xml の指定を以下のように変更したら例外が出なくなりました。

        <activity
            android:name=".ActivityMainMenu"
            android:theme="@style/MenuTheme" />


                ↓

        <activity
            android:name="<パッケージ>.ActivityMainMenu"
            android:theme="@style/MenuTheme" />



あれー?
. の省略記法が効いていない???

ちなみに Service の方は .の省略記法が効きました。


環境:
Glass XE19.1
Glass Development Kit review API19 Rev8



2014年7月12日土曜日

Android Wear のデモモード解除手順

Android Wear LG G Watch にて、電源を入れるとデモモードを開始する事ができます。
しかし、この解除方法がマニュアルにも公式サイトにも載っていない!


ファクトリーリセットすることで対処することになります。
以下、手順です・・・が、その前に Android Wear に対する筆者の考えを。


<スマートウォッチ/時計型端末は流行らない>
そもそも筆者は iWatch(つまりアップルが作る時計) 以外の時計型端末が流行るとは考えていません。

手に持ったスマホでやれることを、時計型端末をわざわざ買ってまでやるかというと非常に微妙です。キャズムを越える事はできないでしょう。
実際、これまで Android が搭載されたスマートウォッチはいくつも発売されてきていますが、使っている人を見た事がありますか?

ただし流行る可能性がひとつあるとすれば、それは アップル社。
鳴かず飛ばずだった MP3プレイヤー が アップルiPod の登場で激変したように、
スマートウォッチも アップルiWatch の登場で激変する可能性があると踏んでいます。


ではなぜ私が Android Wear を買ったのか?
それは Android Wear は【時計のみを指すわけではない】からですね。

Android Wear の仕組みは Google Glass にも統合されてゆきますから、Glasswareデベロッパーとしては現時点から押さえておかねばなりません。
そのような意味で購入したものであるため、一般の方に現在の Android Wear はあまりオススメいたしません。


<工場出荷状態へ戻す方法>
・時計裏のリセットボタンを8秒押して電源オフ

・クレードルに時計を置いて電源オン

・時計左上から右下へスワイプを繰り返す


・> を押してメニューから RECOVERY MODE を選び、○ で決定

・スワイプダウンして wipe data/factory reset を選び、右スワイプで決定




・スワイプダウンして Yes -- delete all user data を選び、右スワイプで決定 (だったかな?)

・しばらくすると処理が終わるので、reboot system now で右スワイプして終了





以上です!




2014年4月19日土曜日

MOVERIO BT-200 が adb から見えないときの対処

未知の Android端末にめっぽう強い Mac をもってしても MOVERIO BT-200 が adb から見えないとき、以下のようにしましょう。


<ターミナルで>
$ cd
$ cd .android/
$ cp -p adb_usb.ini adb_usb.ini.bak
$ vi 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.
0x04B8 ←★コレを追加

$ diff adb_usb.ini adb_usb.ini.bak
4d3
< 0x04B8
$ adb kill-server
$ adb start-server
$ adb devices
List of devices attached
0000123456789AB    device ←★見えるようになるはず


以上です。

2014年1月21日火曜日

GDKでHelloWorldを作ってみる

Glassware を作るための開発者向けの開発記事が出ていましたので紹介します。

GDKでHelloWorldを作ってみる
http://d.hatena.ne.jp/bs-android/20140114/1389683925


かくいう著者も理解に手間取った部分ですので、こういった記事があるのは喜ばしいですね!

2014年1月19日日曜日

Google Glass USB-ADB Driver for Windows (UnOfficial)

I prepared an ADB driver to carry out development using Google Glass by Windows.
※日本語記事はコチラです。


 
Google Glass USB-ADB Driver  for Windows [UnOfficial]
GlassDriverAndGlasswareUnOfficial_20140119.zip
https://drive.google.com/file/d/0ByzS1YbMJUdISnNTZFZSbUF3NmM/edit?usp=sharing
GlassDriverAndGlassware_UnOfficial_20140307.zip
https://drive.google.com/file/d/0ByzS1YbMJUdIeUVOd0FkVm9UZ1E/edit?usp=sharing

 --> ZIP password is nextsphere .




*How to use (I'm tested in Windows7)

1) Google Glass:  Turn on USB DEBUG
2) Windows: GlassDriverAndGlassware_UnOfficial_xxxxxxxx.zip download & extract
3) Windows: Connect Glass to Windows  &  Use GlassDriver\usb_driver\
4) Windows: Execute Glassware\00_GlassAvailableCheck.bat
===========================================
Glass Available Check:
===========================================
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
List of devices attached
012AB34C567890DE        device  <-- Your Glass Devices

*Extras

My Glassware is bundled.

+Airplane Mode
 Windows: Execute 01_install_AirplaneMode.bat

+Positive Suppli  feat. HATSUNE MIKU
 Windows: Execute 02_install_PositiveSuppli.bat


*Special Thanx
Thank you, Leet Insider.

And...
Please take an article of "Leet Insider" into account when there is the person who does not get along well in Windows8.

Google Glass の Windows用 ADBドライバ (非公式)

Google Glass を使った開発を Windows でも実施できるように、ADB ドライバを用意しました。

 
Google Glass用 ADBドライバ  for Windows [非公式]
GlassDriverAndGlasswareUnOfficial_20140119.zip
https://drive.google.com/file/d/0ByzS1YbMJUdISnNTZFZSbUF3NmM/edit?usp=sharing
GlassDriverAndGlassware_UnOfficial_20140307.zip
https://drive.google.com/file/d/0ByzS1YbMJUdIeUVOd0FkVm9UZ1E/edit?usp=sharing
 →ZIPパスワードは nextsphere です


Google 謹製のドライバが公開されるまで、暫定的に置いておきます。
自己責任でお使いください。

※「ADB ってなに?」という質問など、Android 開発に関する基本的な質問に関しては一切対応しません。



■使い方 (Windows7 にて動作確認済み)

1) Google Glass にて、USB DEBUG モードをオンにする
2) Windows マシンにて、GlassDriverAndGlassware_UnOfficial_xxxxxxxx.zip をダウンロードし、解凍する
3) Windows マシンに Glass を接続し、
   ドライバとして 
  GlassDriver\usb_driver\
   を指定する
4) Windows マシンにて、Glass が認識されているか確認する
   具体的には、
  Glassware\00_GlassAvailableCheck.bat
   を実行し、
===========================================
Glass Available Check:
===========================================
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
List of devices attached
012AB34C567890DE        device  ←★ここに device があれば OK

続行するには何かキーを押してください . . .
となったら OK。


■おまけ

私の Glassware も同梱してあります。

Airplane Mode ~機内モードのオン/オフ~
 01_install_AirplaneMode.bat を実行するとインストールされます。

Positive Suppli (ポジティヴ サプリ) feat. HATSUNE MIKU
 02_install_PositiveSuppli.bat を実行するとインストールされます。




謝辞:
Leet Insider さん、ありがとう。
もし、Windows8 でうまくいかない方がいた場合は、Leet Insider さんの記事を参考にしてください。


2013年12月27日金曜日

なんと! Glassware のリリースには Google の審査が必要!!

Glassware (Glass アプリ) を開発しても、Glassware を配布するには Google の審査が必要となります。
Android と同じだと思っていると痛い目にあいますのでご注意ください。
※出典はこちらです。


Glassware は、MyGlass を介して配布することとなります。

しかしながら、Glass はスマホと違ってユーザに非常に近いデバイスである(Glass向けアプリ(Glassware) の企画には、5つのルールを守ろう! 参照)ため、当該 Glassware がさまざまなポリシーに則っているかどうかの審査を経てから公開となります。
※ひらたく言えば、iOS のアプリ配布と同じです。

現時点ではまだ審査は開始されていませんが、以下に配慮して開発を進める必要があります。

■各種ルールに則って開発しよう
ルールに則り、Glass にあるべき UI を実現したアプリを用意する必要があります。

■音声コマンドを選択・申請しよう
既存の音声コマンドを選択するか、あるいは、音声コマンドを申請します。
これは、Google が音声コマンドが的確に動作することを保証するためです。

上記をすべてクリアしたのち、Glassware の申請となります。
各種ルールは非常に厳密に定義されておりますので、じっくり目を通してから企画・開発に着手するのがよいでしょう。

2013年12月26日木曜日

Glass で com.android.ddmlib.SyncException: Read-only file system

Glass に adb install コマンドでアプリを転送しようとしたところ、

Failed to install xxx.apk on device 'xxxxxxxxxxxxxxxx': Read-only file systemcom.android.ddmlib.SyncException: Read-only file system起動はキャンセルされました!

が表示されて転送できませんでした。
adb コマンドの方では

Error: Could not access the Package Manager.  Is the system running?

が出ました。

こんなときはハードリセットで対処しましょう。

2013年12月23日月曜日

Glass Development Kit (GDK) が rev.2 にアップデート!

この数日で、Glass Development Kit (GDK) Sneak Peek が rev. 2 にアップデートされたようです。


さっそくダウンロードしよう!
# Glass が手元にないと、意味ないですが・・・


<気になる変更点>
タイミングからして、Glass XE12 の修正が反映されているように思われます。
Glass Developers のサイトでも、更新が 2013/12/17 や 18 に入っているページがいくつかあります。
  • com.google.android.glass.media
    • CameraManager ・・・インテント発行で、写真や動画が取得可能。こないだまで Intent を投げたらアプリがクラッシュしていたけど、これで大丈夫かも!?
    • Sounds ・・・タップ音を鳴らすときなどに。
  • com.google.android.glass.widget
    • CardScrollView などが追加 ・・・Immersions でタイムライン&ライブカード風の画面を作るためののビューかな?

・・・調べてみたら、全ページに更新かかってるじゃん ∑( ̄□ ̄ノ)ノ
# 今回の更新分がどこか、メソッド単位で表記してくれませんかね Google さん・・・

2013年12月18日水曜日

Camera#setParameters() を伴うカメラプレビューを表示するとプレビューが乱れる

カメラプレビューを表示しようとした場合、プレビューがおかしく(斜めに変な感じ)なることがあります。

 現状では、Glass (XE10~) のバグです。
こちらのおまじないで回避できます。

    Camera.Parameters params = camera.getParameters();
    params.setPreviewFpsRange(30000, 30000);  // ★これ
    camera.setParameters(params);
 

2013年12月15日日曜日

ライブカードを実装したのに雲(?) のライブカードが表示される

ライブカードを実装したのですが、なぜか上記のような謎のカードが表示されます。


非常に手間取ったのですが、RemoteViews を生成する時のパッケージ名が 空だったためでした。