Androidプログラミング質問スレ revision54

■ このスレッドは過去ログ倉庫に格納されています
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/
2018/03/04(日) 20:05:13.70ID:qlRk9bM0
>>237
この場合のクロスプラットホームっていうのはmacとwindows、はたまたlinuxのことじゃないかと
2018/03/04(日) 20:28:35.57ID:9bUhlbFW
intel androidは糞だろう。中でarmエミュレートしないと動かないことも多いのだから。
241デフォルトの名無しさん
垢版 |
2018/03/05(月) 10:03:13.04ID:qTf9YbOJ
それってarmネイティブのプログラムってだけのことでは?
だったら動かすためにはそうせざるを得ないんだから仕方ないよね。
2018/03/07(水) 00:56:52.09ID:TgI6DfYx
このスレ的にクロスプラットフォームは、
スマホのことじゃないの?
2018/03/07(水) 01:06:53.83ID:TFWDKoFN
アプリそのものじゃなくて共有する開発環境のことでしょ
2018/03/07(水) 01:34:23.28ID:MzP8rhu8
更新できないAndroidスマホも壮大に放置なgoogle。結局サポートとか何も考えてないんだよな。
文句言われるのはアプリ開発者側。
2018/03/07(水) 09:12:57.30ID:rFmUUH3l
今はもうAndroid5.0以上で問題ないだろ
2018/03/09(金) 11:34:04.46ID:FEF9WikR
CPUの場合はマルチアーキテクチャ
2018/03/09(金) 11:59:47.02ID:kQASXVLd
5.1以上でいいよ
2018/03/09(金) 15:44:08.08ID:XwDpFLle
自分のZenfone3は、購入時はAndroid6.0だったのに、
今じゃ自動アップデートでAndroid8.0で動いているからなぁ。
個人的にはDozeとかめんどいから、Android6.0で良かったんだが。
2018/03/09(金) 16:30:32.96ID:ciB3VK7a
初スマホになるので今まで避けてたスマホ開発に参戦しようと思います
2Dから軽い3Dゲームや便利なユーティリティを開発したいです
android実機開発においてやっぱスペックは高いほうがいいですか?
antutu v6の旧スコアで45000, 80000, 150000
のどれかのモデルを購入予定で80000のnova lite2が激安なので食指が伸びてますが
多少高くても実機スペックはケチらないほうがいいですかね?
2018/03/09(金) 16:33:20.65ID:ciB3VK7a
すみません
nova lite2の80000(正確には90000にちかい)はv7でした
v6で65000程度のようです
2018/03/09(金) 17:10:25.96ID:ijnUjDqJ
ハイエンドの端末しかサポートしないというなら実機も合わせた方がいいけど幅広いユーザーに遊んでほしいというならミドルレンジ機での確認は必要じゃないかな?!
2018/03/09(金) 20:21:33.05ID:ciB3VK7a
なるほど
デバッグや開発時のストレスを考慮しましたが
遅いのにあわせるというのは良い物の見方ですね
とりあえず今回は1台目なのでパフォ重視でミドルハイのやつを買ってみて
慣れてきたころに手頃なミドルロウの端末も買おうと思います
253デフォルトの名無しさん
垢版 |
2018/03/09(金) 20:30:07.76ID:M6e78+XV
nova lite 2なんかは安いけど、2年くらい前のハイエンドくらいの性能あるしな。
2018/03/10(土) 22:55:30.76ID:R9ykMPa9
開発向けのリファレンス機としてはNexus5X/6Pを勧めるけど
もう次のOSバージョンに対応しないからなあ
2018/03/11(日) 12:40:25.37ID:sQj0UtPi
Pixelでいいじゃん
2018/03/11(日) 16:19:38.59ID:xYekkBDX
開発向けならOSのバージョンアップなんてむしろ邪魔なだけだろ
古いバージョンも手元に残しておかないと、動作確認が出来ないし
2018/03/11(日) 16:42:47.71ID:kGJfAWIx
だから最新のリファレンス機を合法に使えないのが問題だって
2018/03/11(日) 16:48:21.69ID:BYDF6whw
リファレンス機なら好きなos焼けるから
2018/03/11(日) 18:58:09.57ID:MJz47mHB
開発機は素のAndroidかユーザーの多いXperiaかGalaxyあたりの端末を用意したいところ
Nexusは終了したけどAndroid oneがあるぞ
2018/03/11(日) 19:29:10.58ID:HtKMm6ff
リリース後だったらAndroid oneでもいいけど、Pixelじゃないとプレビューが試せないんだよね。誰かくれないかな
2018/03/11(日) 20:09:34.25ID:sQj0UtPi
つーかOreoもまだシェア5%しかないのに、何でそんなに最新のを使いたがるかね
最速で対応したって誰も使ってるやつおらんやん
2018/03/11(日) 20:27:17.30ID:mz3FpV5C
>>261
オレオではBluetoothの仕様が変わったから既存のアプリで接続がうまくいかないトラブルが出てきてんだわ
他にもそういった事象があるかもしれないんで確認のために必要なのよ
2018/03/11(日) 21:16:22.88ID:kGJfAWIx
俺もアプリレビューでオレオで動かないってのが増えてる。対応しようとしたら既存のアプリ仕様だと簡単でなく頭抱えてる。
2018/03/12(月) 05:20:35.26ID:mUhUzn+A
まあでもバックグラウンドで勝手に動くなってのはわかる
2018/03/12(月) 06:06:18.23ID:qMXCNgmT
>>261
シェアはまだまだでも、実際に搭載機種が発売されててバージョンアップも始まってるから、開発現場は早めに入手しておきたいのさ。
266デフォルトの名無しさん
垢版 |
2018/03/12(月) 11:05:57.52ID:Q9IHxMt/
教えてください、初心者が必ず悩むバックグランドからの復帰時のデータの取り扱いに
悩んでます。onPauseでデータ保存、onResumeでデータ読み。
念のためonSaveInstanceStateでもデータ保存しています。
だいたいOKなのですが、バックにいる時データの保持は保障されなくてたまに初期データで
立ち上がります。みなさんはやはりキャッシュなどに保存しているのですか?
どの状況でも復帰した時はその状態を保持したく、最初の時のみ初期データにしたいのですが
2018/03/12(月) 11:42:06.05ID:cAks+/Uc
OSにkillされたら仕方ないんじゃないかな…
2018/03/12(月) 17:46:40.09ID:4Aw67wD0
そういうのってユーザーもアプリが終了されたなってわかるから気にしなくてもいいのでは
裏で動くのが必須のアプリでなければだけど
2018/03/12(月) 18:24:13.67ID:x49OokH5
dbに保存
2018/03/12(月) 18:39:35.07ID:hzXHSEbF
めんどくさいならsharedpreferenceにでも入れとけば
2018/03/13(火) 22:03:07.67ID:Gshvasoy
オレオ対応つらすぎる
2018/03/13(火) 22:38:18.64ID:0JQjdBdA
そんなに変更するとこある?
アイコンを丸にするぐらいしかなかったけど
2018/03/13(火) 22:41:59.74ID:n1/bYRVl
何が?
notificationChannelとか?
2018/03/14(水) 12:20:07.28ID:8TKDaenY
大変とまでは行かないけどOreo以上ならって条件式が結構増えて面倒ではある
275デフォルトの名無しさん
垢版 |
2018/03/14(水) 15:18:15.07ID:k2P8bAPR
その分、欠けてたJava7/8APIのほとんどがサポートされるようになったじゃん。
276デフォルトの名無しさん
垢版 |
2018/03/15(木) 01:42:33.93ID:PwBXD8IH
俺らのプラットフォームで商売させてやってんだから金払えと
開発者なめてるAppleが大嫌いです
Mac時代はサードパーティ製ソフトウェアの少なさに苦戦してたようですが
スマホはうまく先駆者になれたのでそんななめた態度でも充実してますね
実に腹立たしい
だけど僕は騙されませんよ
Appleが反省して土下座するまでGoogleを全力で支援します
2018/03/15(木) 03:57:56.01ID:cwzV45as
なんという未練たらたら
278デフォルトの名無しさん
垢版 |
2018/03/15(木) 04:34:24.19ID:O3nDfC5P
>>276
+1
2018/03/15(木) 07:31:21.53ID:AyjPhViN
>>276
お前さんがプラットフォーム作って、只で使わせてやればー?
2018/03/15(木) 08:47:07.74ID:UV9OKY19
GoogleもMicrosoftもタダで使わせてるわけですが
2018/03/15(木) 10:29:29.01ID:yxUgw9HV
開発環境もそうだが、
クロスプラットフォーム環境でもiPhone用アプリをコンパイルするには、
ほとんどがMac実機が必要ってのがね・・・。

実機テストでiPhoneを買えは当然だが、開発環境までMac買えはどうかと思う。
2018/03/15(木) 10:49:19.90ID:cwzV45as
ビルドもだけどデベロッパー登録とかもMacないとダメだしいよいよストアに出すってなってもリジェクト食らいまくるしなんだかなー
2018/03/15(木) 11:06:14.85ID:i/1DUSZn
4.2 Minimum Functionalityがある限りandroid優先だろ。
2018/03/15(木) 15:19:25.31ID:nCaJDCtA
クソアプリ作る前提なのか
2018/03/15(木) 15:37:44.59ID:LOMg+aKX
知れば知る程appleが嫌いになっていく
2018/03/15(木) 22:13:58.45ID:pe+nbSvS
検索すりゃわかるけど、判定が恣意的らしいよ。引っかかったことないけど。
2018/03/15(木) 22:53:07.85ID:NDZYaqMH
https://jp.techcrunch.com/2018/03/15/2018-03-14-france-takes-legal-action-against-apple-and-google-for-their-app-stores/
日本のクソ政府も行動しろよ。
2018/03/16(金) 05:25:55.03ID:TIaiVtOA
義務教育でプログラミングを必修化することに何となく違和感があったけどこれ読んでわだかまりが解消した
https://jp.techcrunch.com/2016/05/17/20160510please-dont-learn-to-code/
2018/03/16(金) 05:37:27.57ID:TIaiVtOA
と、これ
https://jp.techcrunch.com/2015/11/02/20151031the-path-to-expertise/

プログラミングそのものじゃなくて周りを固めなきゃ何にもならないね
290デフォルトの名無しさん
垢版 |
2018/03/16(金) 16:39:58.10ID:3ma6aQHv
読みにくい日本語だな
291sage
垢版 |
2018/03/18(日) 11:15:12.73ID:CCLc+vNw
拾ったソースをAndroid studioで実装してるんだけど、 public Translate XXX; の宣言でTranslate が見つからないとエラーになる。
Translateって型は初めてなんだけど、これは標準であるのか?何かimportすればいいの?
ググっても分からなかったので、知ってる人が居たら教えてくれ、ここみろURLでもありがたい
2018/03/18(日) 13:07:59.24ID:jUFyI0zL
>>291
そのTranslateってのにカーソル移動して[Alt]+[Enter]したら、import class…ってポップアップメニュー出てこない?
出てくるならそれ選べばいいよ
2018/03/18(日) 14:25:33.86ID:CCLc+vNw
レスありがとう御座いました。

やってみたらポッポアップに、craate class Translate, enum, interfaceみたいなプルダウンが表示された。
ファイル選択のダイアログのコードのサンプルなんだけど、
public classの関数の中で xxx = new Translate( prameter1..... ); みたいな事をやっていて、
下でpublic Translate xxx ってその変数を宣言してるんだけど、Translateの本体の記述は無いみたいなんです。
2018/03/18(日) 15:00:20.71ID:ThqIbZNl
どこで拾ったソース?
取り敢えずそんなクラス名は聞いたことないけど
2018/03/18(日) 15:00:34.45ID:jUFyI0zL
import class Translateって出ないなら、独自に実装されたクラスってことだね。
これかな?
https://qiita.com/matyapiro31/items/abd852362bca856d3446
2018/03/18(日) 15:03:41.15ID:jUFyI0zL
スタックオーバーフローに同じ質問があったよ。この記事にコメントしてみたらいいんじゃない?!
https://ja.stackoverflow.com/questions/29966/android%E3%82%A2%E3%83%97%E3%83%AA%E3%81%A7%E3%81%AE%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E9%81%B8%E6%8A%9E%E3%83%91%E3%82%B9%E3%81%AE%E5%8F%96%E5%BE%97
2018/03/18(日) 15:05:38.48ID:jUFyI0zL
この記事っていうのはQiitaの方ね。
2018/03/18(日) 16:55:15.77ID:zzqIKeVw
OSとAndroid-SDKを全部入れ直した時にDDMSでデバイスの認識がなされなくなってしまってAndroid-Studioでも認識しないのですが
SDKの何を入れればいいでしょうか?
platform-toolsとtoolsは前のやつが残っていたのでこれだけ入れ替えてみたのですが変わりませんでした
2018/03/18(日) 16:55:29.15ID:CCLc+vNw
>>295
ありがとう御座います、それです。

TTSのサンプルがあっさり動いたので、ファイル読ませようとしてました。
ttps://akira-watson.com/android/tts.html

もうちょっと工夫してみます。
2018/03/18(日) 17:54:19.46ID:PhmF7JtL
Windowsみたいな糞でやるからそうなる
2018/03/18(日) 20:23:38.65ID:4Vz1uxAO
>>299
ファイル1つの選択でよければSAF使えば?
2018/03/18(日) 21:23:18.62ID:jUFyI0zL
>>299
たぶん、"Open", "Open ...", "Move", "Cancel"ってテキストを、"開く", "開く ...", "移動", "キャンセル"って日本語で表示したいがために挟んでるクラス。
スタックオーバーフローにある実装でよいはず。
2018/03/18(日) 21:53:06.01ID:JzaiKxSG
>>300
他はもっとダメじゃん。
2018/03/18(日) 22:51:24.60ID:TSRsenip
HttpURLConnectionでサーバー(JavaServlet)と通信しようとしているけど
セッション(クッキー)が使えなくて困ってる。
最初の通信でクッキーは取得できているけど保存されず、次の通信で
セッションIDが送信されてないようだ。
いろいろググってみたけどよくわからない。
どこか分かりやすいページがあったら教えてください。
2018/03/18(日) 23:07:21.24ID:w3iokJdd
シェアドプリファレンスにでも書いときゃいいんじゃね
2018/03/19(月) 04:03:57.05ID:T90F5gsT
>>304
実際に試した訳じゃないけど

https://stackoverflow.com/questions/16150089/how-to-handle-cookies-in-httpurlconnection-using-cookiemanager

とか

https://stackoverflow.com/questions/27939856/perform-http-requests-using-cookies-from-webview#29202320

あたりが参考にならない?
2018/03/20(火) 23:35:20.18ID:rHnlyE8H
>>306
どうもありがとうございました、なんとかできました。

CookieManager cookieManager = new CookieManager()
をstatic変数で保持しておいてそこから通信の度にクッキーを取り出して
リクエストに追加する方法でできました。
2018/03/20(火) 23:37:26.70ID:rHnlyE8H
>>305
ありがとうございます、アプリを終了した後もクッキーを保持したい場合はその方法がよさそうですね。
2018/03/20(火) 23:42:23.76ID:UYhDaQME
どんな通信してるか知らんけどOSS使ったほうがいいよ
あとAndroidのstatic変数は実際ヤバい
2018/03/21(水) 00:58:42.92ID:y6AX/PTk
どんな端末でも動き続けるServiceの作り方が知りたい
setForegroundでも死ぬとかDozeって何なの
2018/03/21(水) 10:46:12.10ID:fmdx9sJT
死んでたら再スタートするしか
2018/03/21(水) 13:04:49.15ID:XXsasApU
Dozeってロリポあたりから導入されたOSの省エネ機能だけど
最初わからなくてスケジュールとかタイマーが勝手に止まるから苦労したよ
2018/03/21(水) 17:21:39.50ID:YRqTlifo
>>310

死なないサービスを作るのではなくて、色々なインテントで
動いていることを確認して動いていなかったら起動する
インテントハンドラを登録するのが古の手法なんだけど
今は駄目なのかな
2018/03/21(水) 17:57:40.10ID:ZtzUuP/P
ゾンビか
2018/03/21(水) 21:46:09.67ID:y6AX/PTk
>>313
死活監視してるもの自体が死ぬこと考えると面倒だな
多重化して監視し合うとかするのか?
2018/03/21(水) 21:47:50.84ID:y6AX/PTk
LINEアプリとかどうやってるのか中の人に聞いてみたい
2018/03/21(水) 22:15:37.19ID:wj0spYvd
AlarmManager使えばいいんじゃね?
https://qiita.com/upft_rkoshida/items/8149605f751137b4c21c
2018/03/21(水) 22:21:59.33ID:wj0spYvd
JobSchdulerのほうが今どきなのか
2018/03/22(木) 16:50:16.19ID:U7Myot5k
>>315
通常のプログラムは監視プロセスが必要だけどインテントハンドラは
システムにこのインテントが着たらこのプログラムを呼び出して
くださいって登録するので自分で管理しなくても自動的にシステムが
監視してくれる

ただシステム任せなんでシステムの挙動がおかしくなると動かな
かったりもするけど、システムがおかしい時の挙動なんて誰も保障
しないだろうけど

>>317>>318
AlarmManagerはロリポかその前くらいからシステムが勝手に時間を
まとめて実施したりするように変更されたのでちゃんとした定期実行
にはつかえなくなったんじゃなかったけな

JobSchdulerで監視すると監視タイミングごとにプロセスが起動されて
しまうため、あまり短時間で監視を行うとただのバッテリードレイン
アプリができてしまうことがあるかな
2018/03/22(木) 17:22:02.19ID:doODULmf
ここのページに
ttp://pancreatic.cocolog-nifty.com/oncle/2015/03/android-50-e878.html
Android5.0以降ではLVLのバグがあってクラッシュするから
このように修正しろってあるけど、実際どうなんですか?
自分は5.0以降でもクラッシュしたことないけど
Googleでこのことについてなにか公式のアナウンスあった?
2018/03/22(木) 23:06:03.77ID:qBdsyPIV
複数のアクティビティに対してアクションバーに同じメニューの追加、ナビゲーションバーを非表示にしたいのですが、それぞれのアクティビティに同じ処理を書くしかないでしょうか?
共通機能として呼び出す形に出来ますでしょうか?
2018/03/22(木) 23:13:34.68ID:qHRh2ld2
>>321
まずActivityをextendedしてベースとなるActivityを定義、それにお望みの処理を書いとく。
あとはそれぞれのActivityをベースからextendedすればいいと思う。
2018/03/23(金) 14:34:26.63ID:KsJUpWGa
Android-StudioをノーパソにインストールしてGradleも正常に動いてました。
デスクトップ側に面倒なのでAndroid-StudioのフォルダとAndroid-SDKのフォルダをコピーして
フォルダ構成も全く同じにして起動すると
Gradle's dependency cache may be corrupt (this sometimes occurs after a network connection timeout.)
と出てGradleの同期に失敗します。ネットには繋がっています。
これはただフォルダをコピーするだけではいけない何かがあるのでしょうか?
どうすればGradle同期可能になるのでしょうか。
また0から地道にダウンロードインストールしなければ正常になりませんか?
2018/03/23(金) 14:53:56.53ID:9STFPDgD
>>323
Gradleの依存関係キャッシュが壊れている可能性があります(ネットワーク接続のタイムアウト後に発生することがあります)。

て話だから、メニューの「ファイル >キャッシュを無効にする/再起動する」を実行してみては?
.gradleの削除とあわせてみたりとかも
2018/03/23(金) 15:21:20.50ID:KsJUpWGa
キャッシュを無効にする/再起動するはやってみましたがだめでした。
.gradleの削除というのは環境本体は破壊されないのでしょうか?
調べてやってみます。
2018/03/23(金) 15:53:25.49ID:j+r5E+o7
>>322
提示していただいた方法で実装できました。
初歩的な質問にご回答いただき有り難うございました。
2018/03/23(金) 16:22:01.31ID:KsJUpWGa
.gradleフォルダ削除してもだめでした。
イベントログの方にはこう表示されてました。
Gradle sync failed: Cause: error in opening zip file

gradle-wrapper.propertiesには
distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip
と記述がありこれも以前の環境では動いていたと思います。

他にどこを見ればいいでしょうか、もうさっぱりわかりません。
2018/03/23(金) 16:25:48.55ID:AdAGFjEv
案外、何かpathが通って無いだけとか?
2018/03/23(金) 16:37:18.19ID:KsJUpWGa
JAVA_HOMEとjdkとjreのbin、platform-toolsとtoolsのパスは通して設定してます。
2018/03/23(金) 16:42:14.88ID:uk6AbdxS
アプリのソースならコピーでなく既存ファイルで読み込んだ方がいいよ
2018/03/23(金) 17:47:01.78ID:p9Zh+6Kq
あれこれ試行錯誤するよりデスクトップ側で再インストールして既存プロジェクトを開くなんやらした方がめんどくさくないと思う
2018/03/23(金) 18:10:46.67ID:KsJUpWGa
この動画を見ながら設定からGradleフォルダを直接指定にして
ttps://www.youtube.com/watch?v=qyXnYhUfOi0
それでもまだで、どこかのサイトに書いてあったJavaのバイトコードのバージョンを1.7に設定したら
同期できました。(後で設定見たらなぜかまたクリアされていたけど)
ん〜、Gradleは難しいですね、ちょっとしたことですぐ同期不可エラーになってしまう。
どうもお世話になりました。
2018/03/23(金) 19:25:42.47ID:pzenry94
Windowsみたいな糞でやるからそうなる
2018/03/24(土) 13:46:03.26ID:9/UBEnz8
>>319
横レスだけどインテントハンドラって何?
キーワードでググったけどHandler?IntentService?
2018/03/24(土) 15:58:52.76ID:PJNy7Xo/
>>334
319に書いてあるとおり、私(このアプリ)はこういうインテントを処理しますよー、っていうのをOSに知らせるもの。

たとえば、ギャラリーアプリで画像を処理するとしたときに、複数の画像編集アプリがインストールされている場合は、どのアプリ。使うか選ぶことになるけど、その一覧に出てくるようになる。
2018/03/24(土) 16:12:00.52ID:U4P6Y3mH
broadcastreciverをいろんなintentで登録しまくって受け取るたびに死んでたら起動するってことだろ
あまり行儀は良くないな
2018/03/24(土) 16:13:55.57ID:9/UBEnz8
>>335
を見て既定アプリに登録出来ないアプリはどうするのかと思ったけど
>>336
を見て色んなインテントに引っかかるように登録しておくって事か…
2018/03/24(土) 18:27:38.92ID:RyB7j6Ie
>>337
オレオからそれもできないよ
暗黙的BroadcastReceiverがほぼ死んだから
ちょうどその対応してる
https://qiita.com/wakwak/items/eaaaa27881fa79dfc180
2018/03/24(土) 18:42:56.52ID:9/UBEnz8
>>338
色々制限かけてくるなぁ
そこ見てたら「ACTION_PACKAGE_REPLACED) are not exempted from the new restrictions.」と書いてあるけど
これは制限されないって事?自分のアプリでは8.0でもアプリアップデート時に引っ掛けてサービス起動出来てる
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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