2014年4月21日月曜日

[AndroidSDK]エラー"R cannot be resolved to a variable"

"R cannot be resolved to a variable"というエラーが出る場合の対処方
Rファイルが更新されてないのが原因っぽいが、そうでも無いこともあって意味不明

以下は経験則に基づいた対処法

・Clean>Build
一番お手軽だけど解決されないことが多い

・eclipseを終了>プロジェクトフォルダ内のbinとgenを削除>eclipse起動
これで解決することが結構ある

・エラーの起こるソースに"import com.example.android.R;"を追加する
プロジェクトを作って1回目のBuild時にこれを入れるとeclipseを再起動しなくてすむ

・↑の逆で「エラーの起こるソースの"import com.example.android.R;"を外す

--NEW--
・エラーの起こるソースのパッケージ名を変更>エラーが出たままなのでパッケージ名を戻す
でなぜかエラーがとれたことがあった


・Android2.1など古い段階でに作られたプロジェクトに起こる可能性が高いような気がする
新しいAndroidSDKで新規にプロジェクトを作成し必要なデータのみコピーしたところ発生しなくなった

2014年4月19日土曜日

[iOS]Xcode5.1でアプリ申請時に出たエラー

Could not find any content hosted eligible apps.

iTunesConnectで設定したIn-App Purchaseがappleのホスト設定になっていない(自前サーバーからコンテンツをダウンロードするようになっている)
In-App Purchaseの設定で"Hosting Content with Apple"をYESにすることで解消



ERROR ITMS-9000 : "Invalid Image Paht - No image found at the path 
referenced under key 'CFBundleIcons': 'icon-Small' at SoftwareAssets/SonftwareAsset(MZItemspSoftwareAssetPackeage)

ERROR ITMS-9000のエラーは検索すると色々な原因があるらしい、
今回はアイコン関係のエラーでicon-Smallなどのファイルパスが見つからないとのこと
もちもん設定はしてあるが認識できてない、元のプロジェクトがXcode3またはXcode4で作成した事が原因っぽい

対策として
[app-name]-Info.plistから
Icon files、Icon files (iOS-5)、CFBundleIcons~ipadなどのicon関係のファイルをすべて削除
プロジェクト設定のターゲットからGeneral>App Iconsの項目から"Use Asset Catalog"をクリック
Asset CatalogはXcode5から入った機能で、スプラッシュやアイコンの設定がGUIで分かるようになる便利機能
プロジェクトにImages.xcassetsが加わるので選択する
見たまま表示上のサイズのアイコンをドラッグアンドドロップで完了

2014年4月18日金曜日

[iOS]XcodeDefault.xctoolchain/usr/bin/clang failed with exit code 1

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang failed with exit code 1

というエラーが出た
調べてみるといろいろな原因があるようだが
今回の原因はソースコードが不足、インポートしたモジュールのソースコードが赤マークになっていた。

2014年4月17日木曜日

[iOS]Memory Leak

UIViewをLeakさせた状態 1つのリークだけでは無く複数でる リークは必ず検出されるとは限らないみたい、

下記はUIViewをLeakさせた状態

2014年4月9日水曜日

[iOS]1つの画像からretina対応、非対応の画像を作る

NSString *imagePath = [[NSBundle mainBundle] pathForResource:@"image_file" ofType:@"png"];
UIImage *image = [[UIImage alloc] initWithContentsOfFile:imageFilePath];
//resizeImageがRetina対応の画像となる
UIImage *resizeImage = [UIImage imageWithCGImage:image.CGImage scale:2.0 orientation:UIImageOrientationUp];

2014年4月8日火曜日

[iOS]UIGestureRecognizerがtouchイベントを発生させない

UIGestureRecognizerを新しく作ったviewにaddしても有効にならないタイミングがある(?)
 とりあえずNSTimerでviewが作られた後にaddすればうまくいった