20190909
多数のfragmentからの値をあるfragmentで受け取るときにどう処理したらいいのだろうか。値を送り出すfragmentからflagをtrueで渡して、受け取ったfragmentでそのflagをfalseにする。ifでどのfragmentから来たのか判定できる。listenerとか覚えないとだめかな。sharedPreferencesでやろうと思うけど問題出てくるのかなわからん。やってみる。
20190828
protected void onDraw(Canvas canvas) {
if (mBmpFromOpenFile != null) {
canvas.drawBitmap(mBmpFromOpenFile, 0, 0, null);
}
if (bmp != null) {
canvas.drawBitmap(bmp, 0, 0, null);
bmpCopy=bmp.copy(Bitmap.Config.ARGB_8888, true);
}
}
chacheでbmpをうまく保存できない解決方法でbmp.copy()で難なく解決できた。この頃1行で解決できるのに数日とか1週間悩んで解決法を発見する。
gridViewで表示がかくつく多分以下が問題だろうと思う。
String mFilepath = "/data/data/" +mainActivity.getPackageName() + "/files/" +imgList.get(position);
Bitmap bmp = BitmapFactory.decodeFile(mFilepath);
20190825
画像合成もできるようになった。でも、画像表示するのに3枚画像を合成すると表示速度が遅くなってしまう。複雑にするとスマフォの処理能力がネックになってくる。onDraw()の中で処理をするのが間違っていると思う。やってみないとわからないけど。
スマフォ内のファイルを検索するのにwhileを2回使ってできるコードをネットで見つけた。それが15行程度の記述でできてしまう、このコード何となく理解できて、利用はできるのだけれど、頭の中ですっきりしない。こんな簡単なコードでできるなんて、自分の能力の限界があらためて思い知らされる。もう2日調べて、かまっているけどすっきりしない。
20190823
画像合成がうまくいかなくて悩んいた。JPGで保存していたのがすべての原因でPNGにしたらあっさり解決できた。透明度の情報を持つPNGにすべきだった。JPGがいつも最適だと思っていたけど。何か、基本的なことがまだわかっとらん。
20190819
Bitmapで悩んでいる。画面の文字を消すには、文字自体を消す?透明色で塗る?白紙のbitmapってあるの?白紙のbitmapで置き換える?背景色で塗ってしまえばできるけどそれはしたくない。要はBitmapが何たるかわかっとらん現下。
20190723
Firebase AssistantでAdmob
手順には間違いがないと思うけど
ERROR: Gradle DSL method not found: 'classpath()'
が出てしまう。ネットで調べても、解決策はほとんど見つけられない、たぶん、やってる人が少ないと思う。いろいろもっと調べてみたい。
Firebase Assistantを使ってもerror。
20190721
Firebaseってなに??Firebase AssistantでAdmobを使おうと思ったけど、うまくいかない、jsonがどこにdownloadされているのかも??な現状。また何日かかかるだろうな。
20190606
ScreenShotのアプリがほぼ完成した。ほぼ完成すると、色々な機能を付加したくなってくるいつまでたっても完成しない。手書きメモについても同じで、適当なところで完成品を作りたい。
今考えているアプリは
1-ScreenShot
完成度80%
2-手書きメモ
完成度80%
3-kotlin コードサンプルアプリ
完成度20% サンプルコード収集中 ファイル数: 339
4-Javaコードサンプルアプリ ファイル数: 2,013
完成度30% サンプルコード収集中
5-数学グラフサンプルアプリ
完成度30%
6-BMIアプリ
7-Self-Examinationアプリ
完成度1% 情報収集中 いつ完成するかわからん
8-文字メモアプリ
完成度50% すぐにできそうな感じがする
20180628
インターネットに掲載されているandroidstudioの情報ってupdateなものなのか不確かな気持ちになっている。google developerの情報は確かだが、初歩的なものなのか、わからないでいる。暗中模索の中にいるからなのかどうなっているかわからない。というのも、Google APIで添付ファイルを送信できるのか検索をかけても出てこない。中国とかインド人のサイトに探していたコードを発見するときがある。日本のサイトには掲載されてない。アプリ開発の会社が日本にも多く存在すると思うが、開発したソフトをネットに上げるなんてことはしないのか。 この件に関しては、公開されているアプリを解析すればわかる話ではあるが。医学とかとは違って、androidは所詮、人間が作ったものだからコツコツ、少しづつ調べていけば必ず解決するんだと思って、日々の努力を継続するつもりだ。
callbackの意味がたぶん完璧に分かった。でも、電話をかけなおす例と全く結びつかない。推察力、昔からわかっていた脳の機能不全を痛いほど感じる。
デベロッパーガイドもネット上の多くの人たちの解説も何故難解なのだろうか、簡単にした膨大な量のサンプルを今作成中でいつになったら完成するかわからない。
20180314
fragmentTransaction.replace(R.id.container, blankFragment);で
required: android.app.Fragment エラーが出る解決法。
public class BlankFragment extends Fragment {
これを
public class BlankFragment extends android.app.Fragment{
に変更するとエラーが消える
20171212
あー。またおかしくなってきた。Android Studioからeclipseに行ってしまっている。SBI証券の自動更新されている売気配株数と買い気配株数をjavaのRobotで取ってきて、そのデータをすべて配列に入れて集計したり、その総計を比較したりして、例えば、三菱UFJの株価が値上がるに向かうのか、下がっていくのか予測できないかなと思ってeclipseでアプリを作成しようと思っている。株は上がっているときは、鮭が北海道の川を一斉に遡上するのと同じで誰が投資しても利益を上げることができる。短期間で、前場だけで勝負するためのアプリかな。気配値を見つめていて、数値が刻々変化するだけではどの方向に相場が動いているかわからない。これをグラフなどを使って視覚的に相場の動きを把握したいと思ったわけで、Canvasとか使って、ネットで調べたら一日でグラフ表示アプリはできたけど、Robotからテキストファイル作成がまだできてないけど、これさえできれば文字列操作は以前何度もやったから完成できると思う。今日は夜12時過ぎたのでやめる。
20171211
Key store pathとかパスワード がわからなくなってしまった。解決策は
エクスプローラで*.jksでpathを見つけて、パスワードは普段使っているパスワードでAPK ファイルが作成できた。これを実機にインストールするには、実機にインストールされていたアプリをアンインストールし、更に設定で提供元不明のアプリのインストールを許可するにチェックを入れて、APKファイルをメールに添付して実機に送信、実機でAPKファイルをタップしてインストールする。タップしても最初インストールできなかったが、通知領域とかかまっていたらインストールできた。
20171205
/data/data/ 内のファイルを見ようとして、以下をやっていたけど
View > Tool Windows > Device File Explorer で解決した。Android Studio 3.0.1
ではAndroid Device Monitor では/data/data/ が見られなくなってどうかしたのかななんて思っていたけど
簡単に解決した。
Android Debug Bridge
C:\Users\wata\AppData\Local\Android\sdk\platform-tools
cd C:\Users\wata\AppData\Local\Android\sdk\platform-tools
//adbのバージョン
adb version
//接続している端末の確認
adb devices
run-as jp.co.wata.applicationQuicknote
//
Android Studio付属の「Terminal」で
cd C:\Users\wata\AppData\Local\Android\sdk\platform-tools
C:\Users\wata\AppData\Local\Android\sdk\platform-tools>adb shell
error: more than one device/emulator
が出たら実機を外す
C:\Users\wata\AppData\Local\Android\sdk\platform-tools>adb shell
generic_x86:/ $ run-as jp.co.wata.applicationQuicknote
generic_x86:/data/data/jp.co.wata.applicationQuicknote $ ls
cache code_cache files
generic_x86:/data/data/jp.co.wata.applicationQuicknote $ ls -l
total 24
drwxrwx--x 2 u0_a87 u0_a87 4096 2017-12-05 02:24 cache
drwxrwx--x 2 u0_a87 u0_a87 4096 2017-12-05 02:24 code_cache
drwxrwx--x 2 u0_a87 u0_a87 4096 2017-12-05 12:06 files
generic_x86:/data/data/jp.co.wata.applicationQuicknote $
generic_x86:/data/data/jp.co.wata.applicationQuicknote $ cd files
generic_x86:/data/data/jp.co.wata.applicationQuicknote/files $ ls -l
total 24
-rw------- 1 u0_a87 u0_a87 6 2017-12-05 02:27 hello.txt
-rw-rw---- 1 u0_a87 u0_a87 12 2017-12-05 02:30 myfile.txt
-rw-rw---- 1 u0_a87 u0_a87 29 2017-12-05 12:06 sample.txt
generic_x86:/data/data/jp.co.wata.applicationQuicknote/files $
View > Tool Windows > Device File Explorer
20171201
Callbackってなんだと、ここ数日考えていた。今日の朝、ふと思いついたことだけれど、いつ押されるかわからない、づーと押されないかもしれないボタンって作ることできないよなーどう考えても考えても。たぶん、そんなときのためにCallbackってあるんじゃないかな。この文章、後になって読み返したら、幼稚だったんだなって思うのかな。
20171121
Gmail送信しようとしたけど、うまく受信できない。
javax.mail.AuthenticationFailedExceptionがでる。ネットで色々調べたら、Googleがログインをブロックしているみたいで、次のようなメールが送られてくる。”アカウントに危険を及ぼすおそれのあるアプリからの Google アカウント watanabejyuku@gmail.com へのログインをブロックしました。お使いのアプリからのログインは引き続きブロックされます。これはアプリに既知のセキュリティ上の問題があるか、アプリが古いためです。安全性の低いアプリへのアクセスを許可して、このアプリを使用し続けることもできますが、アカウントが脆弱なままになるおそれがあります。” で安全性の低いアプリへのアクセスを許可するとkywata@gmail.comで受信できるようになった。安全性の高いアプリってどうやって作るのだろうか。
20171109
最初のアプリを完成して、google play に登録した。バグが見つかったけど、修正しないままである。悪い癖であるが、何か新しいものを発見すると目移りしてのめり込んでしまう、Livedoorの天気予報をダウンロードするとか、retorofitを利用するとか、今はRxJavaってなんだ?と思って調べている。いつまでたっても自分のやりたかったこと、例えば、数学アプリを作るとかできないでいる。数学アプリについては昔、java appletで作っていたからandroid上で作るのは簡単だと思う。
20170629
どんなアプリでもいいから、作ってみようということではじめたが最後の最後でうまくいっていない。AdMobで広告を表示させようとしているがうまくいかない、有料アプリは公開できたが無料アプリの広告表示で戸惑っている、サンプルの広告は表示されるけど。firebaseって初めてだ。なんでもやってみないと、でたらめでも何かやってみないと前に進まない。やっているうちに解決策が見つかる。
20170517
listIterator=linkedList.listIterator();
System.out.println(listIterator.hasNext());
hasNext()をやる前にlistIterator=linkedList.listIterator();をいつもつけないと動作しない。
listIterator.hasNext()はtrueになるのになんでだと悩んだけれど。これで解決した。解決するまでに時間がかかってしまった。
20170506
AndroidStudioでlogcatにログが表示されないとき
Tools->Android->Enable ADB Integrationにチェックを入れて再起動する。
20170425
openFileInputってActivityの中でしか使えないんだ。
20170424
All Android devices have two file storage areas: "internal" and "external" storage. These names come from the early days of Android, when most devices offered built-in non-volatile memory (internal storage), plus a removable storage medium such as a micro SD card (external storage). Some devices divide the permanent storage space into "internal" and "external" partitions, so even without a removable storage medium, there are always two storage spaces and the API behavior is the same whether the external storage is removable or not.
"external" storageって必ずしも、sdカードを意味するのではないのか。紛らわしき事限りなし。
20170415
run-as: Could not set capabilities: Operation not permitted
this is a bug on Samsung devices ならばAsus zenphoneでと思ったけど、バッテリーがない。Arrows MO3でうまくできた。手順と結果は以下の通り
cd C:\Users\wata\AppData\Local\Android\sdk\platform-tools
adb shell
run-as com.example.wata.myapplication
cd shared_prefs
cat com.example.wata.myapplication_preferences.xml
<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<map>
<string name="hogehoge">foofoo</string>
</map>
20170415
保存されたsample.txtを見る。
Android studio->Tools->Android->Android Device Monitor
emulatorでは com.exsample.wata.myapplication->files
右上のGet Device File でdesktopに保存してみる。
実機ではどうするのだろうか。
cd C:\Users\wata\AppData\Local\Android\sdk\platform-tools
adb push C:\Users\wata\Desktop\sample.jpg /sdcard/
/storage/emulated/0 に保存される
shell
am start -a android.intent.action.VIEW -d http://google.com
でhttp://google.comが開く
am start -n com.example.wata.myapplication/.MainActivity
でMainActivityが起動する。
20170408
Show Java - A Java Decompiler でDecompilerできる。これを使ったら、知識がある人はどんなアプリだって解析できることになる。有料アプリって無意味になってくるのでは、このDecompilerを使って乱戦になっているのだろうな。パソコンをつかってdecompilerしてたけど、今日、デコンパイラできるようになった。たった一日だけでdecompilerできた。Show Java を入れたスマフォで超簡単にdecompilerできた。何って感じ。また調べてみたらProGuardで難読化できるみたいで、a,b,c,dクラスがいっぱい出てきて読めない。世の中うまくできている。
20170302
Preferences に保存したデータをファイルに書き出して確認する。
エミュレータではAndroid Divice monitorで
data->data->com.example.wata.myapplication->shard_prefs
->Preference**.xml で
Pull a file from the device で 保存したデータを見ることができる。
実機では簡単に見ることができない。
20170219
実機でRunの時、minSdk(API 23) > deviceSdk(API 22)というエラーが発生した。
解決法 APIレベルの変更
File→Project Structure->app->Flavors->Min Sdk Version ->API21:Android5.0 Lollipop)に変更。
20160217
Android Design Support Library の利用方法
Empty Activity で作成したプロジェクトで CoordinatorLayout が使えるようになるまでをみてみましょう。
Empty Activity ->android.support.design.widget.CoordinatorLayout->ProjectStructure->
Dependencies->"com.android.support:design"でFloatingActionButton実装が可能になる。
http://android.keicode.com/basics/ui-floatingactionbutton.php に詳しい記述がある。
20161222
プロジェクトを別の場所に保存しておく方法。
エクスプローラで別の場所にコピペすれば解決。
20161220
R.が全て赤になる解決法
Cannot resolve symbol 'R'の時
Build -> Clean Project 実行後 Build -> Rebuild Project
Android Studio 2.2.3にしてから、エラーが噴出する。以前は全くなかったのに。
今はすべて解決している。
20161220
Hax is enabled
12-19 15:52:53.345 2477-2905/com.example.wata.myapplication E/EGL_emulation: tid 2905: eglSurfaceAttrib(1165): error 0x3009 (EGL_BAD_MATCH)
E/EGL_emulation: tid 3901: eglSurfaceAttrib(1146): error 0x3009 (EGL_BAD_MATCH) W/OpenGLRenderer: Failed to set EGL_SWAP_BEHAVIOR on surface 0xacfc9fa0, error=EGL_BAD_MATCH Device emulator-5554disconnected, monitoring stopped. Application terminated.
とかが出るので、Genymotionをインストールした。確かに早くなった。
20161218
Instant Runが以下のようになったみたいだけれど、AndroidStudio2.23にして、遅くなった。
Instant Run の強化: Android Studio 2.0 で導入された Instant Run は、Android 開発を高速化、軽量化するための Google の主要な長期的投資です。この機能がリリースされてから、多くのデベロッパーの編集、ビルド、実行のサイクルが大きく改善されています。今回のリリースでは、たくさんの安定性や信頼性の向上が行われています。以前のバージョンで Instant Run を無効にしている方も、ぜひ Instant Run を有効化して、以前に発生した問題が解消されているかどうかをお知らせください([Settings] → [Build, Execution, Deployment] → [Instant Run]
20161214
AndroidStudioインストールトラブル
// Can't load library native-platform.dll
Errorが出た。すべてデフォルトでインストールをやり直したりした。
//SDK location がわからないと言われる。
File->Other Setting->Default Project Structure-> で
C:\Users\wata\AppData\Local\Android\Sdkを入力
Users\wata\AppDataまでくらい入力すると隠れていたのが出てくる。
//cache.propertiesが見つからないエラーが起きた。File-> Invalidate caches / Restart で invalidateを選択->AndroidStudioを終了
ユーザのホームディレクトリにある.gradleフォルダを削除かフォルダ名変更する
AndroidStudioを起動する。でうまくいった。
20161103
BOOTMGR is Missingが表示される
既定値に戻して再起動するとwindowsが起動するが、Androidエミュレータが起動しないのではないかな、やはりIntel HAXM is required to run this AVD.が表示される。
20161025
Intel HAXM is required to run this AVD.
VT-x is disable inBIOS.
の解決法
BIOS->詳細->IntelVT(IntelVirtualizathionTechnology)->無効から有効->F10
20160426
本のサンプルファイルを読み込むには
サンプルファイルをどこかに展開し、Dドライブとかの直下にコピーする。サンプルファイルだけにして後は削除しておく。
AndroidStudioを起動する。
Import project(EclipseADT,Gradle,etc)でインポートする
Gradle Sync Issue で ErrorがでるのでFix Plugin Version をクリックする
RunでDevice Chooserが表示される
Device Chooser で Launch emulator Nexus5 API 23 で OKする
emulatorが起動するが1度目はだめで、2度目にChoose a running device が選択できるのでこれでOK ボタンをクリックする。
これでemulatorがうまく作動する。
20160410
Android Studio 2.0のインストール
回線スピードが遅いのでEXEファイルを保存してからインストールする。
以前のバージョンと大きく変わったみたい。起動はするがerrorがでる。Error:Can't load library: C:\Users\wata\.gradle\native\19\windows-amd64\native-platform.dll