2012年6月30日土曜日

R.javaが消える件

アプリ作ってて、xmlの修正した後でリソースIDの参照がおかしくなることがある。
例えばstrings.xmlのAを参照している作りなのに、なぜかBを参照してしまうような感じだ。

この事例はたまに発生していて、さっきも起こっていた。
eclipseの挙動もおかしかったからクリーン起動すると、、、

???
R.java がない!!!???

おかげでこのざま。


もう真っ赤。
作成中のアプリだけでなくリリース済みのアプリも全部。

余りの出来事に放心状態になったが、とりあえずググって事象を整理した。

・eclipse クリーン起動すると R.java が消えることがある
・原因はres内のxmlファイルのエラー、またはAndroidManifest.xmlのエラー
・xmlファイルの場合、命名規則のエラー(大文字が使われているなど)が原因のことが多い

とりあえずxmlファイル確認したけど、それらしいエラーも見つからず
また放心状態。。。

でもまてよ、、、全部のアプリにエラーって、、、と思い、考える。
AdMob...?

AndroidManifest.xmlのAPIレベルを13に変更し保存。
R.java復活!!
助かった(:_;)

AdMobを下位OSで使用するためにAPIレベルを下げてた事が原因だったみたいです。
(表示上はワーニングなので注意)
※aidlファイルを参照してるところもエラーになりますが、これはファイルを再保存したら消えます。


流石に今回は焦ったのでメモっときます。
AdMob使っている人は気をつけて下さいね(^_^;)

Actionbarの導入

今作成中のアプリにアクションバーを使用したかったのだが、
APIを使用するとなるとAPI Level を11以上にする必要がある。

OSの割合の大半が2.3のタイミングでこれは出来ないな~って、
判断してやめようと思う。
個人的にアクションバー使ったUIが好きなんだけどな~

早くICSやJBが普及すればいいのに<(`^´)>

2012年6月21日木曜日

SDK Manager の更新と、その副作用


昨日 SDK Manager のアプデを行ったんだけど、その後 eclipse の挙動がおかしくなった。
xmlファイルは変更してないのにエラーはいたり、
作成中のアプリの動作が挙動不審になったり。

仕方がないので eclipse をクリーン起動させた。
すると次のようなエラーが!

This Android SDK requires Android Developer Toolkit version 17.0.0 or above.  
Current version is 16.0.1.v201112150204-238534.  Please update ADT to the latest version.

なんか以前もあったような。。。
前は相当ハマったけど、今回は2回目なのですんなり対応できた。
でもメモった方がよさそうなので書いときます。

このエラーはSDKのバージョンと、ADT(Android Developer Toolkit)のバージョンが
不一致を起こしているために起こります。
対処法としては、、、

「ヘルプ」⇒「新規ソフトウェアのインストール」⇒「作業対象」
ロケーション:https://dl-ssl.google.com/android/eclipse
を選択して(ない場合は追加して)、最新バージョンの開発ツールをインストール。

eclipse 再起動でおkです(^^♪

2012年6月20日水曜日

【Java】配列

久々にJavaのこと書きます。
配列について。

これはAndroid開発でも出てくるから覚えておいた方がいい構文のひとつ。
配列とは複数の値を持つことができる変数です。
int[] intArray;
String[] textArray;
こんな感じで宣言すると配列になります。
上がint型の配列、下がString型の配列。
int[] intArray = new int[10];
String[] textArray = new String[10];
配列を使用するにはnewして実体を与える必要があります。
上の例だとどちらの配列も10個の要素を持つ配列になります。
int[] intArray = new int[10];
intArray[0] = 0;
intArray[1] = 1;
intArray[2] = 2;
intArray[3] = 3;
というような感じで値を代入していきます。
ここで[]の中の数値をindexといい、0から始まる数字で表します。
(1から始まらない点に注意)
10個の要素を持つ配列の場合、indexは0~9で
配列の各index番目に値を入れることができます。
int[] intArray = new int[10];
intArray[0] = 0;
intArray[1] = 1;
intArray[2] = 2;
intArray[3] = 3;

int three = intArray[3];
配列から値を取得する場合も代入のときと同じで、
欲しい値が設定されているindexを指定することで取得できます。

因みに、、、
String[] textArray = {"a", "b", "c"};

// "b"が代入される
String b = textArray[1];
配列は宣言時に初期値を設定することもできます。
{ }で囲い、","で区切り代入する値を記述します。
上の例だと"a"、"b"、"c"という3つの値を持ったString型の配列となります。
値の取得方法は変わりません。

配列の利用方法としてはfor文と組み合わせて使用すると
便利なことが多いです。
String[] textArray = {"金", "銀", "銅"};

for (int i = 0; i < textArray.length; i++) [

    // "金"、"銀"、"銅"と順に表示
    System.out.println(textArray[i]);
}
textArray.lengthはtextArrayの要素数を示します。
上の例だと i < 3 と同意ですね。
ここで注意するのはindexは2までですが、lengthは3という点です。
慣れてきたらすぐですが、初めのうちは混乱するかもね(^_^;)


配列については以上です。
次回は配列に良く似たものでコレクションについて触れていきます。
でわでわ。

SDK Manager の更新

久しぶりにSDK Manager 立ち上げたらアプデ来てたから、
インスコし始めた。
良く考えたらその間コーディング出来無いじゃん\(^o^)/

光通ってないから遅いんだよね。。。

皆さんもアプデのタイミングには気をつけましょう!

2012年6月11日月曜日

ACTION_APPLICATION_DEVELOPMENT_SETTINGSへのstartActivity()

タイトルの通り、「開発者向けオプション」画面へ遷移させたくて、
// 「開発者向けオプション」画面へ遷移
startActivity(new Intent(
    android.provider.Settings.ACTION_APPLICATION_DEVELOPMENT_SETTINGS));
って指定したら"ActivityNotFoundException"だって。

ググって色々調べてみたら、
「開発向けオプション」画面はDevelopmentSettingsというActivityで、
intent-filterで設定されている文字列には"com."がついてて、 android.provider.Settings.ACTION_APPLICATION_DEVELOPMENT_SETTINGSとして宣言されている文字列は "com."がついてないんだって。。。
<activity
    android:name="DevelopmentSettings"
    android:label="@string/development_settings_title">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <action
            android:name="com.android.settings.APPLICATION_DEVELOPMENT_SETTINGS" />
        <category android:name="android.intent.category.DEFAULT" />
    </intent-filter>
</activity>

おそろしや~

sirocoの性格

sirocoの性格について。
結構、心変わりする。

アプリ作りにしても、
この間アイコンを載せた「通知消去」ではなく、
すでに別のアプリを作っている始末。

と言うか、したいことがたくさんあると、
並行でしようとするタイプかな?

いま作ろうとしているアプリのアイデアが、
4点くらい溜まってる。

いいのやら、悪いのやら。。。

2012年6月3日日曜日

【こんなときに画面消灯しないでよ】1ヶ月後

「こんなときに画面消灯しないでよ」がリリースして1カ月を迎えました。
インストール数は1000を超え、レビューも12件頂きました。

レビュー12件というのは、このインストール数にしては多い方で、
大変嬉しく思います。
更に嬉しいことに、レビューの評価が皆★5つで
siroco自身びっくりしています。

これからも良いアプリを作っていきますので、
宜しくお願いします。

とりあえずは、レビューで頂いた、端末再起動時の
ステータスバー表示の制御を可能にすべく、
改定を進めていきます。

それでは。。。