« Play Consoleのアプリ署名が変わった! | トップページ | ようやく公開に漕ぎつけた! »

2017年7月19日 (水)

「時間電卓/TimeCalc」開発で嵌ったところ

久しぶりにandroidアプリの開発「時間電卓/TimeCalc」で嵌ってしまった。
1.ファイル書込みで出来ない!
調べてみたら今まで何の気もせず「他アプリから書込み可能」MODE_WORLD_READABLEにしてた。
OutputStream out=context.openFileOutput(fileName,Context.MODE_WORLD_READABLE);
これが最新バージョンで使えなくなったようだ。
「他アプリからアクセス不可」MODE_PRIVATEにしたら書き込み出来た。
OutputStream out=context.openFileOutput(fileName,Context.MODE_PRIVATE);
2.Button文字が大文字になってしまう
これもデフォルトではAPI14以降大文字になってしまうようだ!
小文字にするにはAPI14以降に下記を追加する必要がある。
if(Build.VERSION.SDK_INT >= 14){
Key_H.setAllCaps(false);
}
3.Action Barが表示されない
Actiob Barが搭載されていると思ってBlank Activityを使用したが、実行してもActiob Barが表示されない!
実はActiob Barに似ているTool Barだった。
これを削除したら表示されるようになったが、それならEmpty Activityでよいと作り直したが背景色が気に入らない。
できれば動的変更をしたいと探ったができないようなのでAction BarをやめてButtonで作った。
4.Build gradleをいじり過ぎたら異常終了
古い端末も対象にしようとTarget SdkVersionを弄り回したら動作しなくなったので下記をベースに再構築した。
(1)Minimum SdkVersion
動作する最低レベルのSDKを選択します。
ここで選択したバージョンより低いレベルのSDKではアプリがインストールできない状態になります。
(2)Target SdkVersion
メインターゲットとする端末のSDKのバージョンを設定します。
Android SDKでは前方互換性の機能があり、新しいAndroidのバージョンの端末で古いアプリを実行した場合、画面のデザインや外観が変わる機能があります。
・targetSdk < 端末のAPIレベル=targetSdkVersionバージョンのテーマを使う
・targetSdk > 端末のAPIレベル=端末のAPIレベルのテーマを使う

(3)CompileSdkVersion

どのSDKのバージョンのコンパイラでビルドするかを指定します。
コンパイラを追加する場合はAndroid SDK Managerで必要となるバージョンのSDK Platformのパッケージをインストールしておく必要があります。
コンパイラは新しいものほど改善が進んでいるため通常は最新のコンパイラを指定します。
 
5.公開が出来ない
Google Play Consleの仕様が変わってアプリ署名ができない!
 

|

« Play Consoleのアプリ署名が変わった! | トップページ | ようやく公開に漕ぎつけた! »

Android」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/112439/65554381

この記事へのトラックバック一覧です: 「時間電卓/TimeCalc」開発で嵌ったところ:

« Play Consoleのアプリ署名が変わった! | トップページ | ようやく公開に漕ぎつけた! »