※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

Androidアプリを開発中に自分が遭遇したエラーやその解決法、手法などを載せてくページ

前提条件
開発ツール:Eclipse
開発SDKバージョン:2.1
使用言語:java
開発環境:Windows 7
     Galaxy S2

  • パッケージ名について
  パッケージ名が一緒だと同じアプリとして認識されてしまう為、多数のアプリを自分が作成していても
  必ず違うパッケージ名を入れる事。
  ・参考リンク
  Androidパッケージ名変更の最短手順

  • ESファイルエクスプローラーで自作アプリを入れる時に「解析エラー」と出てインストールできない
  自作アプリの最小SDKバージョンが、その機種のAndroidバージョンよりも高い事が原因。
  自作アプリの最小SDKバージョンを下げる事により解決できる。

  • 自作アプリの最小SDKバージョンを変更したい
  AndroidManifest.xml の <uses-sdk android:minSdkVersion="x" /> の x の項目をいじる。
  default.properties の target=android-x を上記と同じにする。
ターゲットバージョン APIレベル
最小SDKバージョン)
Android 1.5 3
Android 1.6 4
Android 2.1-update1 7
Android 2.2
GALAXY Tab Addon
8
Android 2.3.3 10
Android 3.0 11


画面方向について
画面方向を指定したい場合AndroidManifest.xmlに<activity android:screenOrientation="文字列">を追記する。
文字列 効果
unspicified 向けた方向に自動回転
デフォルトでセットされている
portrait 縦画面固定
landscape 横画面固定
user 現在のレイアウトに従う
ユーザーの操作で変更可能
behind 親のアクティビティーに従う
ユーザーの操作で変更可能
sensor センサーに従う
nosensor センサーを無視する

  • フルスクリーン化について
<android:theme="@android:style/Theme.Black.NoTitleBar.Fullscreen">
AndroidManifest.xmlに記述する。

  • Javaのintやfloatなどは値渡し
 配列、及びオブジェクトは参照渡しである

  • Androidでのデータ入出力(プリファレンス)
ゲームのオプションやハイスコアの保存などに適したデータ形式
保存されるデータは「キー」と「値」をペアにした物である

import android.content.SharedPreferences;

public static SharedPreferences Pref;	// プリファレンス操作オブジェクト

void Main(Context context)
{
	// MODE_PRIVATE		他のアプリからアクセス不可
	// MODE_WORLD_READABLE	他のアプリから読み込み可
	// MODE_WORLD_WRITEABLE	他のアプリから書き込み可
	Pref = context.getSharedPreferences("Pref", Context.MODE_PRIVATE);	// プリファレンスの取得
}

void SetData()
{
	SharedPreferences.Editor edit = Pref.edit();	// このオブジェクトを通して書き込みを行う

	// 各種データ書き込み
	// 第一引数:キー
	// 第二引数:保存したいデータ
	edit.putBoolean("data_bool" , true  );	// boolean型
	edit.putInt(    "data_int"  , 123   );	// int型
	edit.putFloat(  "data_float", 45.67 );	// float型
	edit.putLong(   "data_long" , 89012 );	// long型
	edit.putString( "data_str"  , "ABC" );	// string型

	edit.commit();			// 書き込みの確定
}

void GetData()
{
	// 各種データ読み込み
	// 第一引数:キー
	// 第二引数:読み込めなかった場合、代わりにセットされるデータ
	//           ""とした場合、代わりにセットされるデータは空白文字列となる
	boolean data1 = Pref.getBoolean("data_bool" , ""      );	// boolean型
	int     data2 = Pref.getInt(    "data_int"  , ""      );	// int型
	float   data3 = Pref.getFloat(  "data_float", "99.99" );	// float型
	long    data4 = Pref.getLong(   "data_long" , "12345" );	// long型
	string  data5 = Pref.getString( "data_str"  , "def"   );	// string型
}