X



Androidプログラミング質問スレ revision54
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
垢版 |
2017/11/15(水) 05:24:17.80ID:F5cxE2Dc
※プログラミング自体が初めて!なあなたには↓↓↓こちらへ
スレ立てるまでもない質問はここで 146匹目
http://mevius.2ch.net/test/read.cgi/tech/1487825717/
Eclipse統合M36【Java/C++/Ruby/Python/Scala】
http://mevius.2ch.net/test/read.cgi/tech/1503723668/
★★Java質問・相談スレッド180★★
http://mevius.2ch.net/test/read.cgi/tech/1492780397/
****オススメ関連リンク****
■ TechBoosterhttp://techbooster.org/category/android/tableofcontents/
■ Androidメモhttp://www.saturn.dti.ne.jp/npaka/android/index.html
■ 逆引きAndroid入門http://www.adakoda.com/android/
■ Androidプログラマへの道http://wiki.livedoor.jp/moonlight_aska/
■ Android Wiki*http://wikiwiki.jp/android/

****公式リファレンス****
■ Android developershttp://developer.android.com/index.html
■ ソフトウェア技術ドキュメントを勝手に翻訳http://www.techdoctranslator.com/
■ 日本Androidの会http://www.android-group.jp/
■ StackOverFlowhttp://stackoverflow.com/questions/tagged/android

****前スレ****
Androidプログラミング質問スレ revision52
http://echo.2ch.net/test/read.cgi/tech/1479305887/
Androidプログラミング質問スレ revision53
http://mevius.2ch.net/test/read.cgi/tech/1488052551/
0375デフォルトの名無しさん
垢版 |
2018/04/05(木) 13:51:13.88ID:p8p8O582
>>373-374
確かに暴走した時にキル出来なくて、
スマホの再起動くらいでしか戻れない迷惑なアプリですよね・・・
考え直してみます
0376デフォルトの名無しさん
垢版 |
2018/04/05(木) 16:29:35.48ID:UuUARDUA
なんかここで質問されるのって普通じゃ思いつかないような変な使い方が多いような気がする笑
0377デフォルトの名無しさん
垢版 |
2018/04/05(木) 17:09:22.13ID:Qh7cAqjK
普通の使い方ならば質問してないでgglksとか言われて終わら
されるような気がするので正しく機能しているということではw

ただ普通の使い方がAPIの更新という名目の元に毎年
ドラスティックに変更されてしまうので付いていけないというか
付き合いたくないってのはあるかな・・・
0380デフォルトの名無しさん
垢版 |
2018/04/05(木) 22:07:59.00ID:jKn24thT
Gradleってなんでオンラインじゃないとだめなんだろ?
なにしてるんだろ、まさかこちらのソース送ってるとかないよね
0382372
垢版 |
2018/04/06(金) 09:17:23.05ID:6G6WbNPR
>>373-374
考えてみたけど、思いつかなかったです・・・。

症状としては、数時間後にアプリが勝手にバックグラウンド(ホームボタンを押した状態)に移動してしまい、
隠れてしまうのを回避したいです。
根本的な解決だと移動する原因を突き止めることなのでしょうが、
アプリが勝手に隠れる原因って何でしょうか?
アプリはFLAG_KEEP_SCREEN_ONで常時画面ONにしていて、
他にアプリが起動した様子は無く、WiFiも切っています。
0384デフォルトの名無しさん
垢版 |
2018/04/06(金) 09:29:14.86ID:1s4vQgLg
>>382
そのフラグって起動している間は画面をオフにしないってだけでは?
常時そのアプリをアクティブにするものとは違ってたかと
0385372
垢版 |
2018/04/06(金) 10:07:25.02ID:6G6WbNPR
>>383
ホワイトリストには入れて無かったです。

>>384
画面ONで他のアプリが動かなければ、常時アクティブになるのかなと思ってました。


ゾンビ化させるつもりで、onPause()の時にonResume()を呼び出してみたけど、ダメでした。

@Override
protected void onPause()
{
super.onPause();
onResume();
}
0387372
垢版 |
2018/04/06(金) 14:29:54.97ID:6G6WbNPR
ありがとうございます
確かに電池の最適化なんて何やってるかわからないから、
まず除外して動かしてみます
0388デフォルトの名無しさん
垢版 |
2018/04/06(金) 18:03:16.34ID:yTrFAsEy
普通は勝手にバックグラウンドには行かないし、スリープ復帰後もフォアグラウンドのままだし
その端末がスリープに入るとアプリがすべてバックグラウンドに行く仕様とか
(それも変な仕様だけど。または変なアプリが入ってるとか)
0389デフォルトの名無しさん
垢版 |
2018/04/07(土) 00:37:29.79ID:KyZzR8Ca
クラッシュしてるんじゃ?
バックグラウンドに行く原因を特定するほうが先だと思うが
0391デフォルトの名無しさん
垢版 |
2018/04/07(土) 21:54:49.05ID:usGE3LU3
フォアグラウンドサービスはかなり殺されにくくなるだけで
絶対に殺されないものではないけど
途中で殺されてたりしない?
0393デフォルトの名無しさん
垢版 |
2018/04/08(日) 08:05:06.22ID:yAEsr6bU
google playで公開しているアプリのユーザーが、
とても良いアプリだからdonateしたいんだが的なことを英語のメールで送ってきたんですが、
非消費型アプリ内課金でdonate機能を付けることは問題ないんですかね
つまり、何も機能追加とかはしないけど単にお金を貰うだけということになるんですが
0394デフォルトの名無しさん
垢版 |
2018/04/08(日) 08:23:48.88ID:yAEsr6bU
もしくはそういう機能のあるアプリって既にgoogle playで公開されてたりしますか
0395デフォルトの名無しさん
垢版 |
2018/04/08(日) 08:33:10.78ID:yAEsr6bU
google的には30%の手数料収入が入ってくるわけだから禁止する理由もないのかな
0400デフォルトの名無しさん
垢版 |
2018/04/08(日) 16:14:58.90ID:nkM5b3tX
通報完了
0403デフォルトの名無しさん
垢版 |
2018/04/08(日) 20:09:13.69ID:XJyH/Fya
ブログとかwebサイトでも作ってそこにdonate機能つけて、アプリからそこにリンク貼ればいいんじゃね
0404デフォルトの名無しさん
垢版 |
2018/04/10(火) 08:17:25.88ID:4qTJiNgA
Googleは10%じゃなかったっけ?
リンゴと窓が30%で。
10%でも高すぎると思うんだけさぁ。
0405デフォルトの名無しさん
垢版 |
2018/04/10(火) 09:38:15.81ID:oTtORWOv
AndroidStudio 3.0.1を使用しています。
Android Profilerにてメモリ使用量を確認したところ、「Native」が開始直後は10MB程度から、数時間後に160MBまで増えているところまではわかりました。
ただ、このNativeの何が増えているのかはわかりませんでした。
([Dump Java heap]で開始直後と数時間後を比較すると、FinalizerReferenceやbyte[]は1.5倍程度にしか増えていませんでした)
この場合、何を見れば良いのでしょうか?
よろしくお願いします。
0406405
垢版 |
2018/04/10(火) 10:46:30.85ID:oTtORWOv
画面はこんな感じです。
http://fast-uploader.com/transfer/7078879864621.jpg

Retained Size 49248559Byte ≒ 47MByte 使用ってことでいいのかな?
ただ上のグラフだとNativeが増えて、Total 192MBのメモリを使用しているけども。
0407デフォルトの名無しさん
垢版 |
2018/04/10(火) 11:57:09.41ID:TSJBBdQs
>>393
>>396
俺も似たようなレビューを数件貰ってたから、広告非表示や機能追加で課金を検討してたけどPayPal経由で寄付実装なんてのもあったのか
Googleに怒られるかと思ってた
0408デフォルトの名無しさん
垢版 |
2018/04/10(火) 14:19:05.47ID:lVG+418w
Android Studioで大きな画像を表示してピンチイン・アウトをしたいと思い、
https://qiita.com/satoshinew/items/a5fa3711d76429159dcb
これを使いたいのですけど説明の意味がわからないので解説してください。
(Android Studioの設定は完了して「Hello World」の文字は表示されてます)

まず、導入の方法は2つあるようです。

「ライブラリプロジェクトをインポートする」場合、
https://github.com/satoshinew/GestureTransformableView/tree/master/GestureTransformableView
このページのどれをどうすればインポートできるのでしょうか?

「gesturetransformableview.jarを直接libsに突っ込む」場合
https://github.com/satoshinew/GestureTransformableView/tree/master/GestureTransformableViewSample/libs
このページには「android-support-v4.jar」「gesturetransformableview.jar」「picasso-2.2.0.jar」
と3つのjarがありますが
「gesturetransformableview.jar」だけをクリックして次の画面でダウンロードすればいいのでしょうか?

(ちなみに、Picassoというのは大きな画像を取り込める機能をもつライブラリ?のようですが
 このPicassoも使いたいと思ってます。
 このページにある「picasso-2.2.0.jar」をDLして突っ込むとPicassoも使えるようになるのでしょうか?)

そして次の
------------------------------------------
xmlで宣言する場合は  〜 (コード) 〜

直接書いちゃう人は   〜 (コード) 〜
------------------------------------------
についてですが
「xmlで宣言する場合」というのは「activity_main.xml」のところに書けばいいのでしょうか
「直接書いちゃう人は」というのは何をどこに直接なのでしょうか

よろしくお願いします。
0412デフォルトの名無しさん
垢版 |
2018/04/10(火) 19:51:27.91ID:lVG+418w
>>409
ライブラリプロジェクトのインポートやlibsやjarについて
詳しく書いてある本教えてください。

>>410
こんな短期間でやり方変わっちゃうんですか?
0413デフォルトの名無しさん
垢版 |
2018/04/10(火) 20:53:29.71ID:TVXUJkSK
公式に書いてあるんだからまずはそれを読むこと
そして4年は短期間ではない
0415デフォルトの名無しさん
垢版 |
2018/04/10(火) 21:09:11.67ID:FWUcHiU9
そもそもAndroid Studioじゃないんじゃねえの
4年前に最新のeclipaeでやったらうまくいくかもよ
0417デフォルトの名無しさん
垢版 |
2018/04/10(火) 22:34:26.61ID:lVG+418w
みなさんありがとうございます

広大なマップの上を移動していくゲームのように
大きな画像を無劣化で取り込みたいです
普通にimageviewで入れると勝手に小さくリサイズされて荒くなるけど
リサイズなしで取り込むにはどうしたらいいでしょうか
経験ある方教えてください

https://developer.android.com/studio/intro/index.html
この公式のガイド見てもよくわからないです
0421デフォルトの名無しさん
垢版 |
2018/04/10(火) 23:41:55.63ID:dT3ZHUu3
画像を表示させるだけでいいならBitmapRegionDecoderで必要な範囲だけ読み込む
それを元にゲームを作るのなら最初からゲームエンジンを使ったほうがいい
0423デフォルトの名無しさん
垢版 |
2018/04/11(水) 17:06:17.71ID:F/Ous+9J
Android ProfilerのMEMORYを見ていると、
GC発生毎にNativeが20〜50Byteほど増えるのですが、
GCの発生回数カウンタみたいな物はあるのでしょうか?
0424デフォルトの名無しさん
垢版 |
2018/04/11(水) 21:16:11.99ID:Ekrt4SSu
>417
エスパーしてリソースフォルダから読み込んでるとするとnodpiフォルダを作って
そんなかに入れとけば拡縮されないよ
0425デフォルトの名無しさん
垢版 |
2018/04/11(水) 21:18:55.41ID:MzqRQf+a
ASで新規プロジェクトでMapを選んで作成した場合
build.gradleで
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:27.1.0'
implementation 'com.google.android.gms:play-services-maps:12.0.1'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.1'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
}
'com.android.support:appcompat-v7:27.1.0'の部分に赤の破線が出てしまいます。
通常のプロジェクト作成で自分でimplementation 'com.google.android.gms:play-services-maps:12.0.1'を
追加した場合も同じです。
0426デフォルトの名無しさん
垢版 |
2018/04/11(水) 21:19:15.36ID:MzqRQf+a
エラーの内容の詳細を見ると次のようになっています。
All com.android.support libraries must use the exact same version specification
(mixing versions can lead to runtime crashes).
Found versions 27.1.0, 26.1.0. Examples include com.android.
support:animated-vector-drawable:27.1.0 and com.android.support:support-media-compat:26.1.0.
There are some combinations of libraries, or tools and libraries, that are incompatible, or can lead to bugs.
One such incompatibility is compiling with a version of the Android support libraries that is not the latest version (or in particular, a version lower than your targetSdkVersion).
すべてのcom.android.supportライブラリは、まったく同じバージョン仕様を使用する必要があります
(バージョンを混在させるとランタイムクラッシュにつながる可能性があります)。
バージョン27.1.0、26.1.0が見つかりました。 例にはcom.androidがあります。
サポート:アニメーションベクタ描画可能:27.1.0、com.android.support:support-media-compat:26.1.0。
互換性がない、またはバグにつながるライブラリやツールやライブラリの組み合わせがいくつかあります。
このような非互換性の1つは、Androidサポートライブラリの最新バージョン(または特にtargetSdkVersionよりも低いバージョン)ではないバージョンのAndroidサポートライブラリでコンパイルされています。

特に26.1.0を指定した記述もしていないのになぜこうなってしまうのでしょうか?
環境構築になにか問題があるのでしょうか?
どうすればこの赤破線は消せますか?
0428デフォルトの名無しさん
垢版 |
2018/04/11(水) 22:25:40.20ID:bGKmreb3
AS3.0でプロジェクト新規作成したみたが26で作られて特にエラーはでないな
AS3.1は糞だからゴミ箱に入れてAS3.0でやり直したらいいんじゃね
0429デフォルトの名無しさん
垢版 |
2018/04/11(水) 22:39:16.57ID:bGKmreb3
AS3.1.1で試してみたが確かにエラーがでるね
appcompat-v7:26.1.0に変えて、compileSdkVersionとtargetSdkVersionを26に変えればいいんじゃね
0430デフォルトの名無しさん
垢版 |
2018/04/11(水) 23:04:49.66ID:2wRg4OP5
自作ホームアプリを起動したあとに他のアプリから呼び出すとactivityが二重に起動してしまいます。
launcherModeはsingleTaskに設定しているのですが、原因がわかりません。
どなたか原因わかる方いるでしょうか?
0431デフォルトの名無しさん
垢版 |
2018/04/11(水) 23:21:10.85ID:56ydcTG7
>>425
implementation 'com.android.support:appcompat-v7:27.1.0'
implementation 'com.google.android.gms:play-services-maps:12.0.1'
の依存でコンフリクトが起きているようで上にあるよう26に戻すか、オレのアプリは特にクラッシュしないので特に気にしていない
0432デフォルトの名無しさん
垢版 |
2018/04/11(水) 23:25:34.29ID:MzqRQf+a
>>429
それらを26にして破線を消すことができました
ありがとうございます
実機で実行した時になぜかクラッシュするようなので3.0を入れて試してみます
0437デフォルトの名無しさん
垢版 |
2018/04/12(木) 19:01:50.87ID:P2lbY/yn
ASの所為でもなく、敢えて言えば個々のライブラリが悪い。
けれど、この手の問題は良く発生するから、
implementation 'com.github.bumptech.glide:glide:4.6.1', {
exclude group: 'com.android.support'
}
という逃げ方があるのは覚えておく。
0438デフォルトの名無しさん
垢版 |
2018/04/13(金) 10:25:00.04ID:HJAWiCuj
カウンタを時間に変換したいと思っていますが、

SimpleDateFormat():スレッドセーフでは無い
String.format():すごく遅い

複数スレッドでたくさん時間に変換したいので、スレッドセーフかつ速い変換って何が良いのでしょう?
ググってもデメリットの説明ばかりで、代替え案が出てこないので教えてください。
0441デフォルトの名無しさん
垢版 |
2018/04/13(金) 14:08:14.02ID:wE/PcC5V
Dateは確かにmutableだけど、DateFormat使うに当たってスレッドセーフが必要なケースってあるか?
0442デフォルトの名無しさん
垢版 |
2018/04/13(金) 15:28:07.28ID:HJAWiCuj
非同期処理の確認でSystem.nanoTime()で、実行時間を見てます。
この為に同期処理にってのもナンセンスですし・・・。
0443デフォルトの名無しさん
垢版 |
2018/04/13(金) 19:21:12.81ID:wE/PcC5V
いやいやw
その処理のどこにスレッドセーフが必要ですか?
0445デフォルトの名無しさん
垢版 |
2018/04/13(金) 19:57:15.35ID:RY8AhnJK
activityのintentfilterにcategory.launcherとcategory.homeを設定しているのですが、ホームボタンから起動される時と他のランチャーから起動される時でactivityが複数起動してしまうのですが、単一のactivityとして起動させるにはどうしたら良いでしょうか?
playstoreの他のホームアプリをいくつか試したところ同様の現象が確認出来ました。いい解決方法わかる方いたら教え下さい。宜しくお願いします。
0447デフォルトの名無しさん
垢版 |
2018/04/13(金) 23:26:21.53ID:hC05ofLj
>>446
singletaskに設定してますが、二重起動してしまいます。他のmodeも全て試しましたが駄目でしたね…
0448デフォルトの名無しさん
垢版 |
2018/04/14(土) 17:31:30.37ID:26sHduj5
サービスが寝ないようにするにはインテントをずっと投げ続けてあげないと駄目なのかなぁ
0449デフォルトの名無しさん
垢版 |
2018/04/16(月) 16:14:40.52ID:CW5cSmWo
アプリをユーザに終了させないにはどうすればいいんですか?
安居酒屋にある、タブレットで料理を注文する端末のようなものを作りたいんです
一つの技としてホームアプリにしてしまう方法があるようですが、それ以外の方法があれば教えてください
0450デフォルトの名無しさん
垢版 |
2018/04/16(月) 16:32:30.44ID:r1/f7Sud
無理やり起動
0454デフォルトの名無しさん
垢版 |
2018/04/16(月) 23:08:45.07ID:J2LF6NWD
DroidKaigi 2018 - Kioskアプリと端末の作り方 / tomoya0x00 [JA]
ttps://www.youtube.com/watch?v=ofUJaIiaVlw&t=1191s
0455デフォルトの名無しさん
垢版 |
2018/04/18(水) 14:24:41.57ID:pbpKpjEu
WearとPhoneのデータのやり取りでイベント(onDataChanged)でのデータ取得は
できているんだが…
データを自分から取りにいくために
dataItems = Tasks.await(Wearable.getDataClient(context).getDataItems());
を試してみたらうまくいかなかった
データ(キー)は複数あるんだが、1つしか取得できない状態
どうすればいいんでしょ?
0456デフォルトの名無しさん
垢版 |
2018/04/19(木) 05:54:10.26ID:7QjQtXlR
iPhoneは使ったことないので知らないのですけど
Androidアプリってなんであんなに更新頻度が高いんですか?
あれは明らかにパケット消費増大の一因になってますよね
更新頻度が高いGoogleが目立つというのもあるのですけど
Google以外のアプリケーションもそれなりの頻度です
プログラマー視点からみてアプリケーションの更新のしやすさとかがあるのでしょうか?
0457デフォルトの名無しさん
垢版 |
2018/04/19(木) 07:48:18.64ID:tgMFn8kx
実際の判断は違うかもしれないけど
素早いリリースを繰り返すことでバグが含まれていたとしても問題になる前に対処できるから
もちろんテストをしないって意味ではないけど
0458デフォルトの名無しさん
垢版 |
2018/04/19(木) 09:17:17.27ID:ctJSqo7J
iOSだと審査あるから念入りにテストしてアプデするけど
Androidだと審査ないから結構気楽にアプデしちゃうのではないかと

昔ろくにテストせずアプデしたらすぐにバグが見つかって次の日アプデとかよくやったわ
0459デフォルトの名無しさん
垢版 |
2018/04/19(木) 12:37:36.58ID:oHD1faOF
アップデートはいいんだけどそのたびにアクセス権限じわじわ増やしていくの止めて欲しい
0460デフォルトの名無しさん
垢版 |
2018/04/19(木) 13:21:29.15ID:mo+ogwmr
Androidの正規表現で a( の文字を探したいです。
(を文字として使うので\付きで
ptn=Pattern.compile("a\(");
matcher=ptn.matcher("123a(0)");
とすると1行目のcompileでエラーになり
ptn=Pattern.compile("a\\(");
と2つ付けると通りますが2行目のmatcherでエラーになります。
( の文字の検索はどう書けばいいんでしょうか?
0461デフォルトの名無しさん
垢版 |
2018/04/19(木) 14:08:17.94ID:oHD1faOF
>>460
どういうエラーが出るのかコピペしてくれ。
0462デフォルトの名無しさん
垢版 |
2018/04/19(木) 14:51:33.82ID:DF2iU9Ka
一行目のcompileのところではエディタに赤線で
スケープ・シーケンスが無効です (有効なものは \b \t \n \f \r \" \' \\ です )
と出ます。

2行目のmatcherでは実機実行ではクラッシュ、デバッグモードではエラーというか
matcher.classのタブが出て クラスファイルエディター ソースが見つかりませんでした。
jarファイルC:\android-sdk\platfoems\android-21\android.jarにソース添付がありません。
と出てデバッグの進行ポイントがどこかえ消えて実行継続できなくなります。

今ちょっと変えてやったらmatcherは通ってd=matcher.start();の位置取得所のところで出ました。
0463デフォルトの名無しさん
垢版 |
2018/04/19(木) 14:55:39.55ID:DF2iU9Ka
"a\\("としたときでmatcherのfoundのステートはfalseとなっています。
"a\("では実行すらできません。
0464デフォルトの名無しさん
垢版 |
2018/04/19(木) 15:15:01.64ID:oHD1faOF
この順でやるとどう?

Pattern p = Pattern.compile("a\\(");
Matcher m = p.matcher("123a(");
boolean f = m.find();
int ptr = f ? m.start() : -1;

ptr に最終的に何が入る?
0465デフォルトの名無しさん
垢版 |
2018/04/19(木) 15:26:05.35ID:RcfEDsed
3です、ああ取得できてますね
最初matcherでひっかかってたのは何だったんだろう
0466デフォルトの名無しさん
垢版 |
2018/04/19(木) 15:45:48.03ID:tmETQqju
実際はもう少し複雑で a( だけでなく a) も探したいのですが

Pattern p = Pattern.compile("[ab]\\(|\\)");
これではだめなのでしょうか、うまくいきません。
0468デフォルトの名無しさん
垢版 |
2018/04/19(木) 16:16:14.63ID:TRQExClJ
グループ化して括弧をつけるんですね
目的のことができそうです
ありがとうございました
0470デフォルトの名無しさん
垢版 |
2018/04/19(木) 17:20:32.78ID:sayARJan
AACのLiveDataがよく分からないんですけど、
これってObservableFieldとなにか違うんすか
0471デフォルトの名無しさん
垢版 |
2018/04/19(木) 21:01:13.45ID:srwk8Yrs
>>467
俺なら「a[\\(\\)]」かな
正規表現とかやってると C# の @"a[\(\)]" みたいなエスケープを解釈しない文字列表現が欲しくなるな
0472デフォルトの名無しさん
垢版 |
2018/04/20(金) 08:24:02.56ID:q66xT5dy
確かイベントの発生の仕方に違いがあった。
LiveDataは、ソースの通知の都度発生するけど、Ob〜の方は変更があった時のみ発生。
だから、通知の多いLiveDataをそのままViewに結びつけちゃうと、更新がヤバイことになる。
0474デフォルトの名無しさん
垢版 |
2018/04/20(金) 18:53:25.58ID:dyY1ZlsF
>>471
Kotlin には """ (ダブルクォーテーション3つ) があるぞ。
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況