howto

Eclipseが起動しなくなったときの対応の要点だけ

Androidアプリの開発で使うEclipseだけど、作業途中でハングアップ、強制終了後に再起動しても起動中の”building workspace…”あたりで起動がハングしてしまうことがあって、その対応メモ。 Eclipseの強制終了後、起動しなくなる問題の一つはEclipseの一時ファイル.snapファイルというやつが壊れている事が原因みたい。 なので、このファイルを削除してしまえばOK。こんな感じ: rm path/to/workspace/.metadata/.plugins/org.eclipse.core.resources/.snap rm path/to/workspace/.metadata/.plugins/org.eclipse.core.resources/.projects/*/.*.snap これはワークスペースの変更を記録しているファイルで、強制終了後とかに作業状態の復帰とかに使われるものみたい。これが壊れていると復旧途中で止まってしまうということっぽい。 ということで削除後、Eclipseを普通に起動すればきちんと起動するはず。もしくは.metadata/.logを見ると、何かしらエラーログが記録されているはずなのでこれをチェック。

UIWebViewのバウンスアニメを無効にする要点だけ

アプリ内でUIWebViewを使うときに困るのが、タッチ操作でスクロールできてしまうこと。 ネイティブUIにUIWebViewが入りこんでいることが分かって、UIの統一性が失われてしまう。 WebViewがドラッグ動作で範囲外までスクロールできる「バウンス動作」が無効にできれば良さそうだけど、、ということで調べたら、出てきたのでメモ。 http://stackoverflow.com/questions/500761/stop-uiwebview-from-bouncing-vertically for (id subview in webView.subviews) if ( isSubclassOfClass: ]) ((UIScrollView *)subview).bounces = NO; 要はUIWebViewsのsubViewsで取りだした子要素の一覧からUIScrollViewのインスタンスを取り出し、 それのbouncesプロパティを無効にする。これがうまくスクロールをdisableにできれば、気兼ねなくネイティブUIとのハイブリッドが採用できそう。 まだ実際には試してないけど後で試してみる予定。

AndroidでListViewの要素の高さを固定したいときの要点だけ

AndroidのListViewで、要素(行)の高さを固定したいとき。 例えば行がLinearLayoutだとして、 <LinearLayout xmlns:android=“http://schemas.android.com/apk/res/android” android:layout_width=“fill_parent” android:layout_height=“100dp”> <!– SOME UI –></LinearLayout> みたいなheightの設定だけでは不十分で、 <LinearLayout xmlns:android=“http://schemas.android.com/apk/res/android” android:layout_width=“fill_parent” android:layout_height=“100dp” android:minHeight=“100dp”> <!– SOME UI –></LinearLayout> みたいにminHeight(最小の高さ)も設定する必要がある。

Xcode 4で古いライブラリのリンクエラーの解決方法を要点だけ

Xcode 4にアップデートしたときに、古いarm6用にビルドされたライブラリのリンクでエラーになる場合の解決方法。 “Undefined Symbols for architecture armv7” みたいな感じ。 詳しくはみてないけどどうもXcode 4のビルド設定のデフォルトが変わった模様。 これは、 ビルド設定のアーキテクチャにarmv6 と armv7のキーワードがあることが原因っぽい。 ⇒Target > Valid Architectures をダブルクリックして、armv7のエントリを削除 そうするとビルドに成功します。ただしiPhone 3GS以降はarmv7なので、当然armv7でビルドできるならそちらのほうが良いはず。

Xcode 4 howto: フレームワークの追加

Xcode 4で既存のフレームワークを追加する方法です。 1.Project Navigatorを開く 2.ターゲットのアイコンを選択  そうするとSummary/Info/Build Settings/Buid Phases/Build Rulesというタブがエディタエリアに表示される。 3.”Build Phases”を選択 4.”Link Binary With Libraries”を選択 5.”+”を選択 6.ダイアログでフレームワークの一覧が表示される。ここから選択して”Add” 7.Project Navigatorにフレームワークが追加されます。 ちなみにAdd Files…でフレームワークのフォルダを直接指定しても追加されるみたい。