新作アプリ公開:御起動様
Androidのアプリを作成・公開しました。
「他のアプリを、指定した時間に起動させる」アプリです。
ゲームアプリを朝に起動させて、ゲーム音楽で目覚めるっていう使い方ができます。
無料ですので、気軽にお使いください。
アプリ名:御起動様
読み方:ごきどうさま
https://play.google.com/store/apps/details?id=jp.Androyer.goKeyDo
2015年5月17日日曜日
2015年4月30日木曜日
CheckBoxの再利用
CheckBoxの再利用
CheckBoxを作成&使用して、その後、そのオブジェクトを再利用したい場合があるかもしれない。
2回目の使用時にも、setCheckedメソッドを使ってチェックを付けるのである。
このsetCheckedメソッドであるが、setOnCheckedChangeListenerメソッドを実行してしまった後で、setCheckedメソッドを実行すると、onCheckedChangedメソッドが呼ばれてしまう。
2回目の使用時に、そうなってしまった場合、不都合が生じる場合が有る。
Windowsにおいても、似た仕掛けがあるが、Windowsの場合には、onCheckedChangedメソッドに「端末利用者がチェックを施したのか」「プログラムでチェックを施したのか」がわかる引数が付いている。
Androidの場合には、そういう引数は無い。
このため、setCheckedメソッドを実行する直前に、setOnCheckedChangeListener(null)を実行させれば良い。setCheckedメソッドを実行させた後で、setOnCheckedChangeListenerを再設定し直せば良い。
CheckBoxを作成&使用して、その後、そのオブジェクトを再利用したい場合があるかもしれない。
2回目の使用時にも、setCheckedメソッドを使ってチェックを付けるのである。
このsetCheckedメソッドであるが、setOnCheckedChangeListenerメソッドを実行してしまった後で、setCheckedメソッドを実行すると、onCheckedChangedメソッドが呼ばれてしまう。
2回目の使用時に、そうなってしまった場合、不都合が生じる場合が有る。
Windowsにおいても、似た仕掛けがあるが、Windowsの場合には、onCheckedChangedメソッドに「端末利用者がチェックを施したのか」「プログラムでチェックを施したのか」がわかる引数が付いている。
Androidの場合には、そういう引数は無い。
このため、setCheckedメソッドを実行する直前に、setOnCheckedChangeListener(null)を実行させれば良い。setCheckedメソッドを実行させた後で、setOnCheckedChangeListenerを再設定し直せば良い。
2015年4月19日日曜日
無料版の構築エラー
無料版の構築エラー
1個のプロジェクトで、無料版と有料版を構築している。
無料版のデバッグをしようとして、実行をさせようとするが、「無料版の実行形式ファイルがありません」という趣旨のエラーが出る。
そうすると、普通は、無料版関係について、あれこれイジリ回しますよね。
この場合、たぶん、有料版の実行形式ファイルが存在しないのである。このため、有料版の実行形式ファイルを、Build>Clean Projectコマンドを使って作れば良い。
そうすれば、無料版のデバッグができる。むむむ!
開発環境:Android Studio
1個のプロジェクトで、無料版と有料版を構築している。
無料版のデバッグをしようとして、実行をさせようとするが、「無料版の実行形式ファイルがありません」という趣旨のエラーが出る。
そうすると、普通は、無料版関係について、あれこれイジリ回しますよね。
この場合、たぶん、有料版の実行形式ファイルが存在しないのである。このため、有料版の実行形式ファイルを、Build>Clean Projectコマンドを使って作れば良い。
そうすれば、無料版のデバッグができる。むむむ!
開発環境:Android Studio
2015年4月13日月曜日
AndroidLintIconMissingDensityFolder
AndroidLintIconMissingDensityFolder
Android Studio>Analyze>Inspect Code...
下記のエラーが出ることが有る。
AndroidLintIconMissingDensityFolder
Missing density folder
Icons will look best if a custom version is provided for ...
解決方法
主モジュール及び副モジュール(ライブラリ)の両方のresフォルダーに下記7個のフォルダーをダミーで設ければ良い。
drawable
mipmap-hdpi
mipmap-ldpi
mipmap-mdpi
mipmap-xhdpi
mipmap-xxhdpi
mipmap-xxxhdpi
drawable-*系のフォルダーは削除しても良い。
ライブラリ側のresフォルダーにもダミーで設けるってことが肝要ですね。
画像ファイルは入れておかなくても良い。
これに伴い、主モジュールのAndroidManifest.xmlのアイコンに関して次のように書き換えます。
android:icon="@mipmap/ic_launcher"
ちなみに、「mipmap」では無く「drawable」で置き換えた場合、別途、「アイコンのサイズが異なります」という趣旨のエラーが発生します。
Android Studio>Analyze>Inspect Code...
下記のエラーが出ることが有る。
AndroidLintIconMissingDensityFolder
Missing density folder
Icons will look best if a custom version is provided for ...
解決方法
主モジュール及び副モジュール(ライブラリ)の両方のresフォルダーに下記7個のフォルダーをダミーで設ければ良い。
drawable
mipmap-hdpi
mipmap-ldpi
mipmap-mdpi
mipmap-xhdpi
mipmap-xxhdpi
mipmap-xxxhdpi
drawable-*系のフォルダーは削除しても良い。
ライブラリ側のresフォルダーにもダミーで設けるってことが肝要ですね。
画像ファイルは入れておかなくても良い。
これに伴い、主モジュールのAndroidManifest.xmlのアイコンに関して次のように書き換えます。
android:icon="@mipmap/ic_launcher"
ちなみに、「mipmap」では無く「drawable」で置き換えた場合、別途、「アイコンのサイズが異なります」という趣旨のエラーが発生します。
2015年4月11日土曜日
if statement can be simplified
if statement can be simplified
私は下記のコードを好んで使っておった。
ダメなことを列挙すれば無限にあるが、真実は1個しかない。真実を見つめて進みましょう。それが前向きであり、最適です。って、人生哲学がJavaのコーディングから導かれるんだね。
私は下記のコードを好んで使っておった。
String s = "aaa";
if(s==null
|| s.equals("bbb")) return false;//ここに否定形を列挙していく。
else return true;//生き残ったのが真実
お気に入りの書き方だった。
すると、Analyze>Inspect Code...において、if statement can be simplifiedという注意を受けた。
これをどうすれば単純化できるのかね。
解答は次のとおりです。
String s = "aaa";
return s!=null && s.equals("bbb");
パズルみたいですな。
死なせるべき否定形を列挙していくのではなく、生き残らせるべきものを条件制約していく、ということですな。
ダメなことを列挙すれば無限にあるが、真実は1個しかない。真実を見つめて進みましょう。それが前向きであり、最適です。って、人生哲学がJavaのコーディングから導かれるんだね。
(参考)
Android Plugin for Gradle
Android Plugin for Gradle
「Android Plugin for Gradle」と「Build System」とは、別名ではあるものの同じものを指しているのですね。何も知らない者から見ると、別名で表現されると、ややこしいですね。
Android Plugin for Gradle Release Notes...このページに有る、「Android Plugin for Gradle, Revision *.*.* (* *)」を見て、最新のRevisionを確認します。
Android StudioのメニューでFile>Project Structure...を選択します。
Project Structure画面の「Project」をクリックします。
右側に「Android Plugin Version」欄があるので、そこに、上記Revisionを書き込みます。
このやり方では無く、ルートに存在するbuild.gradleファイル内に次のように書いても良いです。
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.1.3'
}
}
むむむ!ここでは「tools」って用語を使ってますな。普通は術語を統一するんじゃないのか。
Error:No subject alternative DNS name matching services.gradle.org found.
recommendedされている方式は、ネットに情報を取りに行くようですね。
2015年4月13日現在、2.3にすると、gradleファイル内の項目に下線が引かれてしまう等の異常が発生します。2.2.1にすると問題はありません。
ちなみに私は下記の趣旨のエラー群で苦しんでいました。
Error Gradle DSL method not found compileOptions()
The project may be using a version of Gradle that does not contain the method.
Open Gradle wrapper file The build file may be missing a Gradle plugin.
Apply Gradle plugin
dependencies cannot be applied to groovy lang Closure
Gradle Plugin User Guide
Gradle Distributions
Error:(1, 0) Plugin with id 'com.android.application' not found
buildTypes cannot be applied to groovy.lang.Closure
Getting error “Gradle version 1.10 is required. Current version is 1.12.” when executing “gradle wrapper”?
Gradle sync error in Android studio when importing project
「Android Plugin for Gradle」と「Build System」とは、別名ではあるものの同じものを指しているのですね。何も知らない者から見ると、別名で表現されると、ややこしいですね。
Android Plugin for Gradle Release Notes...このページに有る、「Android Plugin for Gradle, Revision *.*.* (* *)」を見て、最新のRevisionを確認します。
Android StudioのメニューでFile>Project Structure...を選択します。
Project Structure画面の「Project」をクリックします。
右側に「Android Plugin Version」欄があるので、そこに、上記Revisionを書き込みます。
このやり方では無く、ルートに存在するbuild.gradleファイル内に次のように書いても良いです。
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.1.3'
}
}
むむむ!ここでは「tools」って用語を使ってますな。普通は術語を統一するんじゃないのか。
上記はAndroid Studioにおいて、Gradleを使いこなす道具の設定ですね。
次に、Gradleのバージョンの設定も行います。
Gradleのサイトに最新のがあるようです。詳細を観ようとすると、セキュリティの
関係で閲覧できないという趣旨の画面が出ます。残念ですね。
Android Studioにおいては、次のメッセージが出てアプリの作成が拒否られます。Error:No subject alternative DNS name matching services.gradle.org found.
止むを得ないので、最新のバージョンであるgradle-2.3-all.zipをダウンロードして任意のフォルダーに展開します。
File->Settings...で「Settings...」画面を表示させます。
「Gradle」の「Use default Gradle wrapper(recommended)」では無く、「Use local gradle distribution」にチェックをしまして、先ほど展開したフォルダーを設定します。
また、File>Project Structure...>Project Structure画面>「Project」>Gradle version欄を「2.3」にする。recommendedされている方式は、ネットに情報を取りに行くようですね。
2015年4月13日現在、2.3にすると、gradleファイル内の項目に下線が引かれてしまう等の異常が発生します。2.2.1にすると問題はありません。
ちなみに私は下記の趣旨のエラー群で苦しんでいました。
Error Gradle DSL method not found compileOptions()
The project may be using a version of Gradle that does not contain the method.
Open Gradle wrapper file The build file may be missing a Gradle plugin.
Apply Gradle plugin
dependencies cannot be applied to groovy lang Closure
Googleにおける解説記事よりも、stackoverflowの記事の分量の方が多いような気がするのは、果たして私だけだろうか。
Gradleの道は険しいですね。みなさん、がんばってください。
(参考)
Android Tools Project SiteGradle Plugin User Guide
Gradle Distributions
Error:(1, 0) Plugin with id 'com.android.application' not found
buildTypes cannot be applied to groovy.lang.Closure
Getting error “Gradle version 1.10 is required. Current version is 1.12.” when executing “gradle wrapper”?
Gradle sync error in Android studio when importing project
2015年4月10日金曜日
image varies significantly
image varies significantly
放置しても問題は無いようである。
解決方法としては、Android Studioにおいて、空のプロジェクトを新規に生成して、そこにあるresourceのdrawableフォルダーにあるファイル関係を参考にしながら、自分のアプリのプロジェクトを構築すれば良い。例えば、mipmap-hdpiという名前のフォルダーを作成して、そこに画像ファイルを入れれば良い。
AndroidManifest.xml内の、アイコンを使用しているフォルダー名も書き換えることになる。
(参考)
Image varies significantly in its density-independent (dip) size
The image *.png varies significantly in its density-independent (dip) size across the various density versions多分、EclipseからAndroid Studioにプロジェクトを移植した場合、上記の文言がinspection resultとして表示されるかもしれない。
放置しても問題は無いようである。
解決方法としては、Android Studioにおいて、空のプロジェクトを新規に生成して、そこにあるresourceのdrawableフォルダーにあるファイル関係を参考にしながら、自分のアプリのプロジェクトを構築すれば良い。例えば、mipmap-hdpiという名前のフォルダーを作成して、そこに画像ファイルを入れれば良い。
AndroidManifest.xml内の、アイコンを使用しているフォルダー名も書き換えることになる。
(参考)
Image varies significantly in its density-independent (dip) size
登録:
投稿 (Atom)