Androidプログラミング質問スレ revision53 [無断転載禁止]©2ch.net
レス数が1000を超えています。これ以上書き込みはできません。
SafeArgsもNavigationと一緒に書いてあるだろ。
それを使え。 EditTextの入力文字のデフォルトを大文字に固定したいんだけども、
android:inputType="textCapCharacters"
ってGoogleIMEに効きますか?
小文字入力になっていまいます。
android:inputType="number"
は、数字制限に出来るけども、文字入力には効果が無いです。 ここのところブラジルの広告単価が良くなってきている 358 名前:デフォルトの名無しさん[sage] 投稿日:2018/12/16(日) 15:31:39.65 ID:blr97XJ1 [1/2]
課金システムについてですけど
例えばアイテム1を購入したのを本体のストレージに自分で保存させなくていいんですよね?
GooglePlayアプリの方に自動で保存されるようになっているので
アプリをオフラインで起動してアイテム1課金チェックに言っても
ちゃんと購入済みを返してくれる
この認識で合ってるでしょうか? こちらが本スレのようなのでこちらでお聞きします(余計な一行が入りました)
課金プログラムでの質問です こっちは半年に8件しかカキコがないから向こうが本スレなんじゃないの? >GooglePlayアプリの方に自動で保存されるようになっているので
この部分知りたい。今はこういう仕組みになったのか?
非消費アイテムならプリファレンスに保存でいいけど
消費アイテムなら自分で管理しないとまずいと思う >>322
>GooglePlayアプリの方に自動で保存されるようになっているので
>アプリをオフラインで起動してアイテム1課金チェックに言っても
>ちゃんと購入済みを返してくれる
>この認識で合ってるでしょうか?
基本的にはそれであっています。
ただし、ユーザーが
[設定]→[アプリ]→[GooglPlayストア]→[ストレージ]→[データを消去]
を行った後に
>アプリをオフラインで起動してアイテム1課金チェック
だと、GooglePlayアプリはエラーを返します。(オンラインなら問題無し)
これが笑って許される課金アイテムなら良いのですが、そうでないなら
アプリ側でも購入済情報を持っておいた方が良いです。
アプリ側のプリファレンス等も[設定]→・・・→[データの消去]で消える
ので注意。 ありがとうございます。そういうしくみですか。
’アプリ側でも購入済情報を持つ’場合にちょっとだけ気になることを考えてみました。
アイテム購入>自主ストレージ保存>アイテムを期間内にストアでキャンセル>オフラインにする>アイテム参照をストレージでしてしまう
ここで問題が出てこないかなと。
この辺はうまい具合プログラミングしとかないとだめなんでしょうね。オンラインのみアプリ起動なら大丈夫そうですが。
他のアプリの一般的な処理法はどうなのか気になります。 >>328
初心者さんかな
オンラインの時に比較すれば良いだけ
ずっとオフラインの時は適宜オンラインにするように要求して、オフのままなら無課金の動作にすれば良い >>330
初心者さんかな
課金した時に暗号化は当然だが改ざん及びコピーできないデータを作ればいいだけ
まさか上記の事もできないくらいプログラミングにおいても初心者さんかな >>328
[A] 購入済なのにユーザーが利用できない、という状況を防ぐ
[B] 未購入なのに不正に利用できる、という状況を防ぐ
の両方を完璧に実現するのは困難でしょうから、後はどちらを優先す
るか、どこまで手間を掛けるかを考える必要があります。
私のアプリ内購入のあるアプリは、
* 携帯圏外で利用されることが多い
* 使いたい時に使えなかった場合、あとでやり直すことが出来ない
アプリなので、[A]を優先し、
(1) まずGooglePlayアプリに問い合わせ、エラー無く結果が返されたら
その結果をPreferenceに保存し、結果に従って動作する。
(2) GooglePlayがエラーなら、Preferenceに保存されている結果に従って
動作する。
(3) GooglePlayがエラー&Preferenceに情報がなければ購入済として
動作させる。←[A]優先
としています。
オフラインで使い続ければ不正利用も不可能ではありませんが、そこまで
手間暇をかけるほど高額なアイテムではないので・・・ Handlerが理解できなくてスレッド間のデータのやりとりができない…Runnableってなんだよ… やはりそんな感じになりますよね、[A] が必然的に優先事項に。
大手アプリなんかはオンラインでしか起動できないとしているのをよくみかけます。 起動のたびに課金チェックするのはあまりよろしくないから
何回かに1回の割合でチェックしてそれ以外はプリファレンスから読み取った方がいい
とか課金実装のリファレンスか何かで昔読んだ記憶があるな オレのアプリは高い(といっても課金マックスの半額だがw)から一つの端末でしか動作出来ないようにしてる
端末のルートをとっても課金データはコピー出来ない
みんなこんなの出来る?
因みに課金後は通信してない >>336
>昔読んだ記憶があるな
(GooglePlayアプリが購入情報を端末側でキャッシュしていなかった)IAB-V1の
ころの話では?
>>337
その端末をリセット(初期化)したら購入したアプリはどうなるの? 今更Handlerなんて使う必要無いと思うが、Runnable のことを理解出来ないのは RxJava をちゃんと理解するのに詰むぞ 課金チェックって何度もしないと成功しないんだが何なのこれ
無限ループで何度もチェック入れてやっと戻り値がくる
わけわからん すいません自己解決しますた
returnで戻り値やってのが間違ってますた
直接課金クラスの戻り値を参照するのがいいみたいです やっぱ自己解決してなかった
反映がすごく遅いときがある
やっぱり無限ループで何度もチェックするしかないのか
あと購入後にすぐチェックすると購入されてない
数秒後チェックしたら購入されてた
なんなのこれ >>344
バカにはプログラミングは出来ないという見本をありがとう >>327の捕捉です。
GooglePlayアプリのデータが削除された場合を考慮する必要がある理由は、
ユーザーがアプリ内購入でトラブルがあった場合の対処法としてGooglePlay
アプリのデータを削除するように書いているWEBページが複数あり、この場合
に対処しておかないと、リファレンス・サンプルをきちんと参照せずにいい
かげんに作られたアプリのトラブルの巻き添えを食らうからです。 使おうよage
へんなのいるし、ワッチョイあるぐらいで丁度いいでしょ Android板の開発者雑談スレもコピペ厨に撃沈された >>349
あれはクラッキングされたんじゃないかと思う。
普通、2ch/5chではあんな沢山連投することは出来ないシステムになっているから。 RecyclerViewの使い方がぜんぜん身につかん
なんかいいチュートリアルかなんかないかしら >>352
ありがとう、これの使い方を勉強してくるわ 自前でviewHolderとか書いてる人はもうこの世にはいないよ Intel VT-x を Enable にすると、一応、HAXMエミュレータは使えましたけど、
時々 HDDランプが付きっぱなしになってOSが物凄く遅くなる現象が
あったんだすが、他の人は経験したことないですか?
最初原因不明で、色々なソフトをアンインストールしたり、再起動しても
何やっても駄目で、かなり試した後、最後、OS再インストールしかない直前まで
行って、ものは試しに駄目もとでBIOS で VT-x を disable にしてみたところ、
嘘のように症状が消えたので、間違いないと思います。 どんなにViewの数多くてもViewHolder自分で書いてるよ
息抜きというか現実逃避というか奇妙な気持ちで サポートライブラリにcompatクラスあるけどapiレベルが高かったらcompatクラス使わないでいいの? 個人開発者が、Androidのアプリを普通に公開しようと思ったら、
1. PlayStoreに登録するしかない?
2. PlayStoreの場合、自宅住所が必ず世界中の人に去らされてしまう? 自分のホームページでapkをアップ
amazonストアもある
日本東京まででも何も言われない >>362
>日本東京まででも何も言われない
これ、本当ですか??? 実はその部分について誰も答えを知らないのが現実
いつなんどきそのレベルに表記を指摘されるかもわからないし、この先ずっと大丈夫かもしれない とりあえず現状は何も言われない(大丈夫とは言っていない)
って事か 実際と異なる住所を登録するのは見過ごされてるけどポリシー違反で削除されても文句は言えないって状況だね
あとそもそも無料アプリしかリリースしない場合には住所登録は必要ない >>361
PlayStorを使う使わないにかかわらず、ネット上で有料販売なら、特定商取引法
の定めにより、事業者の氏名(名称)、住所、電話番号 の表示が必要。
法人なら法人名とその住所等で良いので個人情報は直接は晒されない。
(登記簿を見ればわかるが) 見える所はザル
見えない裏で色々やってるのでアカバン食らうと再作成のハードルが高い >>370
有名どころだけは許して、無名で嫌いな開発者だけは許さない、みたいな
こと? まずは無料アプリ作ればええんや
いきなり有料で買いたくなるもの作れるとは限らない Huawei端末が今後更新されなくなると古い開発者サービスだとクラッシュするとかありえるよね
Huawei端末のために別の実装し直しとか必要になってくるかも >>373
Huaweiのシェア考えれば未サポートだな。
大手も未サポートだろうし。 ぶっちゃけファーウェイみたいな特殊な端末のための
工数が省けて喜んでるの多いんじゃないの?
普通の端末なら動くのに変なエラー出したりするし あるアプリのネットワークを監視をしたいんですけど、
どうしたら良いでしょうか?
android7からユーザーが入れたルート証明書が信頼されなくなったみたいですし それが駄目ならVPN作る以外ないんじゃねぇかな.. ルート化端末でシステムのルート証明書として追加する感じかねえ ファーウェイやZTEの特殊性って
他の起動中のアプリ(LINEのような高シェアは除外)を
強制終了させる以外に何かある? それはどのAndroid端末でも起きるんじゃないか
単に性能が低いだけかと >>380
よく分からない省電力機能のせいで
バックグラウンドサービスを勝手に殺す 設定で対象アプリを手動管理に指定すればkillされなくなる 初歩的な質問で申し訳ないんだが
singleTopでonNewIntentを使うときに
onCreateじゃなくてonStartにいろいろ書いたらだめ? 説明不足だったわ
OAuthで1回だけ戻り値がほしいんだが
Activity作ってまでなぁ…と思っただけなんです はぁーやられた
onNewIntentでonStart呼ばれんやんけ
さっきの質問はなしでお願いします >>388
Android板で立てると頻繁に荒らされるから
この板でワッチョイかIP付きでやった方がいいかも >>373
古くない端末なのに、Playだけ古いままとかなるわけだ。
JB〜KitKat辺りもそろそろ足切りになりそうだけど、それはOSのバージョンだけで分ければ済む話だもんな。 >>377
自己レス
マニュフェスト変更して再ビルドしたら行けた pixelってサードパーティ製のブラグイン使ってると
エラーメッセージ出る? 非公開を無理矢理叩いてるようなのだと出るかも
エラーメッセージがなにかわからんとわからん レーティングが3歳以上の設定なのにadmob広告で性的コンテンツが出るって言われて
アプリのアップデートがリジェクトされるんだがなんなん
レーティングの設定を変えようとしたら性的なコンテンツに関する質問が事細かに聞かれて
いや広告が勝手に出してる内容を細かに聞かれてもわかるわけねえだろ
admobの設定画面からデリケートなカテゴリを全部非表示にしたのにまた言ってくるしまじ死ねよ
これ広告収入を払いたくないからいちゃもんつけて広告非表示にさせようとしてるぞ 広告付ける場合は高めの年齢が割り振られるように回答しといた方が無難
iOSだと、広告有り=無制限のWebアクセスの名目で強制的に+17にされる 性的コンテンツのレーティングの質問難しくないですか
性行為が含まれていますかとか
ヌードがふくまれていますかとか
広告の前にアプリとしてストア公開がリジェクトされるんじゃないかと思って
レーティングで調整するのを諦めた 大体初回のアプリアップロードのときは何も言ってこないくせに
なんで今頃ごちゃごちゃ言ってくるんだよ
みんな適当にレーティング入力してadmob表示してるだろ
アプリはストアにどんどん上げてほしいけど広告収入のリターンは払いたくないとかまじ死ねよ Googleは稼げるようになってくるとごちゃごちゃいちゃもんつけてくる
アプリ作るモチベーションが下がるわー Android開発の超初心者です
https://www.youtube.com/watch?v=6zET-_h8VZg
この動画の4:05あたりで"Override Members"というタイトルのダイアログを立ち上げているようですが、どこかクリックしているような感じでもないので何かショートカットキーでもあるのでしょうか
あと、入力候補で途中まで入力したいのですがどうしたらいいでしょうか
例えば
abcまで入力して、
abcdef.ghijk
abcdef.12345
と候補があったときに
abcdef.
までが同じなので、ここまでは自動入力させたい
LinuxのコマンドでTabを押すようなイメージです >>405
それはメニューの Code の下にある Override Methods... だと思うけど、デフォルトだとショートカット一発で出すことはできるのかな?
Windows だと Alt + Insert で Generate というポップアップがでるので、そこで Override Methods... を選べば出る
どうしてもショートカット一発で出したければ、File メニューの Settings の Keymap から Override Methods... に適当なショートカットを追加すればいい 一致してることまで入力する機能はない気がするな
シェルの補完は、そもそも一覧を出す機能がオプションだったり、各候補のどこまで一致しているかを表示する機能がなかったりしたせいで、ああなっているのだと思う ショートカットがわからんときは、Ctrl+Shift+Aを押して検索すればよい。
ところでそのVideo、カスタムビューでもないのにAppComaptXXX使いまくってるな。 だってどんなときでもAppComaptXXX使えってママが ありがとうございます。
質問をしていた疑問については解決しました。
その映像のサンプルコードを編集して少しずつ学ぼうと思っているのですが、さっそく躓きました。
ふたつお聞きしたいです。
(1)
HTTP通信で例外処理をハンドリングしたいのですが、どのようにすればいいでしょうか。
tryしてるので、throwするのだと思うのですが、調べても回答がなかなか出てきません
(kotlinだから情報が少ない?)
(2)
アラートダイアログを出したいのですが、どうすればいいのでしょうか。
MainActivityにこんな感じで関数化して呼び出そうとしていますが、呼び出したときにアプリが落ちます。
ソースコードはこんな感じです
https://i.imgur.com/EB380Co.png 1
catchでググって。
2
GUIプログラミングの常識なんだけど、ビューに関する操作はメインスレッド以外からやると落ちる。
てかログに丁寧に出力してくれてるはずだから、それをちゃんと読む癖をつけた方がいい。 ありがとうございます。
catchで調べたらそれっぽいのが出てきたので、スクショのようにしました
作法的にはこれで合ってるのかなと。
https://i.imgur.com/tDTRagd.png
これでビルドしようとしたところ、変数textが初期化されていないとエラーが出ました
catchを入れただけでエラーが出るのはよくわからないのですが、愚直にval text=""と初期化宣言したところ、今度はconnectionのところで変数を再定義するなと怒られました
難解ですね、これは >>413
catchブロックにtext=""と入れたらビルド通りました
結構制約は細かくチェックするんですね
アラートダイアログのほうは未解決 すいません、現在Androidのビンゴのアプリを作っております。
<Integer>Listに画像idを入れてシャッフルし、別に用意したLinkedHashMap<Integer,boolean>に画像idとfalseをいれてカードを作成。
そしてすべてのナンバーが入ったリストをシャッフルし、ひとつずつ取り出して画像の透明化+LinkedHashMapを参照し、同じ番号があればboolean型をtrueに書き換える処理をしたいのです。
現在困っているのは、
・出てきた番号(int[]R.id.xxxx)に対してImageViewの透明化
・出てきた番号(int[]R.id.xxxx)に対して、PLayer Cpuのカードのtrue上書き
・ビンゴ判定のif文です。
現在困っているのは、抽選setOnClickListenerの中です、なにとぞご教授願います。
https://textuploader.com/1dhav >>414
答えだけ書くとshowDialog()をonPostExecuteに持ってって >>416
ありがとうございます。
実はダイアログの件は同じくonPostExecuteにて実行することで解決していました
(あまり一人で連投しすぎるのもどうかなと思ったので投稿は控えてました)
そちらは解決したのですがHTTPレスポンスコードの取得というか、トラップがうまくいかないですね
404ページにURLを向けてconnectしているのですが、disconnectしたあとに実行しているJSON処理(onPostExecute内のhandleJson()内)でJSONExceptionが発生しているらしく、エラーコードをダイアログで表示もログターミナルに表示もしてくれない。
実行順どうなってるんだ?そもそも404でも例外処理にはならないのか?など疑問がてんこ盛りです。
まともなアプリ作るまで道のりが長いですね。
https://i.imgur.com/3j0g8BC.png そこは嘘でも「教わったやり方でできました」って言っとけ 聞いてばかりで自分で調べないと胡座かいてて嫌がられると思ったので、情報は頂いて感謝してます、すみません
JSONの方にも例外処理を入れましたらHttpUrlconnectionの例外でcatchしたメッセージも出てきましたね。
https://i.imgur.com/xSYXQnY.jpg
非同期処理にしてるから流れがややこしいんですかね?
一応解決はしたのでまた何か手を加えて学習を進めてみます。
ありがとうございました。 30年ほど昔の工業高校時代にマシン語とBASICで簡単なものを作った記憶がある
また何か作ってみたいものだ。若い人たちに色々と教えてもらおう。
まずは本読んでサイトで勉強してタイピング練習だわい 非同期処理は、流れ(コンテキスト)が異なるから、例外機構を使えるか?
非同期処理の外側と、時間の進み方が異なるだろ レーティングでちょうどいい感じの年齢設定にするにはどの質問にどう答えたらいいんだ 初心者です
Android studio3.7.1のsound poolについて質問があります
ボタンを押したら音が鳴るという仕組みを作りたいのですが、
sound poolが使えません(音源はraw内に追加済みです)
mainacticityに sound poolと打ち込んでもエラーが出ます
これは別途で何かインストールが必要なんでしょうか?
初心者なので表現の仕方がおかしいと思いますが答えていただけると助かります >>424
ttps://www.google.co.jp/search?hl=ja&q=+soundPool.load&lr=lang_ja&gws_rd=ssl プログラミングの前にググラビリティを向上させるべき プログラミングの前にググラビリティの意味を正しく理解しよう >>424です
画像をクリックしたら音が出るという仕組みを作りたいです
importにsoundpoolを追加したんですが、
button.setOnClickListener〜からエラーが発生してしまいます
言語はkotlinです
どうすればいいでしょうか?
最初のbuttonというのは何かに置き換えたほうがいいでしょうか? >>431
なんでAndroidプログラミング始めようと思ったの?
あ、ちなみにそのコードは大括弧の対応関係がとれてない。 >>435
プログラミングに興味があったからです
大括弧の対応関係がとれていないのいうのはどこの部分のことでしょうか? プログラミングに興味があるというのはいただけない
具体的な作りたいサービスやアプリがないならプログラミングなんてことに時間を費やすべきでない
勉強が目的なやつは何も生み出せない
ただ時間を無駄にするだけ >>437
一応最初に 画像をクリックしたら音が出るという仕組みを作りたいです と具体的に作りたいモノをレスさせていただいたんですが見落としてますか?
貴方みたいに私もどこか見落としているんでしょうか >>437
こういうことまじめに言い出す奴いるんだよな
興味があったら何でも挑戦しろ
こういう奴はすぐに「お前向いてない」「迷惑かけるからやめろ」
とか、お前が辞めろよと >>440
ありがとうございます
MainActivityの部分は括弧で閉じ解決しましたが、やはりbutton.setOn~の部分でエラーを吐いてしまいます 突っ込みどころが多い…
MainActivity.MainActivityクラスはいらない
buttonはどこにも宣言されてない
button.〜の行が関数の中にないなどなど というか赤波線にマウス当てたりすればエラー内容出るはず
まず読もう >>441
何歳くらい?
findViewById あたりでググって >>444
十代です
関数宣言を忘れてました
buttonの前にfunと入力してその後エラーの内容に従って記述したところ無事エラーは消えました
しかしアプリを実行しようとするとkeeps stoppingと表示され起動されません
こちらについては自分で調べてみようと思います
ありがとうございました 10でも前半でしょこれ
小学生まである
お前ら優しくしてやれよ 独学で取っ掛かりが分からないとそんなもんよ
めげずに地道にやってけば
ある時からふっと分かるようになってくるよ >>437
いいじゃん別に。お前の時間が無駄になるわけでもなし。
例え勉強するだけで後で何も産み出さないんだったとしても勉強してみたくなったのならした方が良いと思うけどね。(老人ならボケ防止になるし)。
直接的ではなくても間接的に他の何かでその知識が役に立つかも知れない。
人間には正確な未来予測なんてできないし、いつどんな知識が必要になるかなんてわからないんだから知識は多目に余計に持っていた方が良い。 AppCompat〜〜だと普通のオブジェクトとどう違うんでしょうか
例えばTextViewとAppCompatTextViewだと何が違うんでしょう? APIに新設された機能を非対応の古い機種でも利用したい場合にそれを使う
細かい違いはリファレンス見れとしかいえんわな 447 は、あちこちのスレで「死ね」って書き込んでる荒らしなので、無視すべし!
447 名前:デフォルトの名無しさん (ワッチョイ 1a63-3b6A) 2019/06/14(金) 06:51:31.38 ID:dZ/vAv8O0
向いてないから死ね
くだすれPython(超初心者用) その43【Ruby禁止】
611デフォルトの名無しさん2019/06/14(金) 21:25:31.20ID:apjsiMiU
>>610
死ねや
612デフォルトの名無しさん2019/06/14(金) 21:28:41.77ID:uMeUmtQc
うざいから ruby を、NG ワードに登録した。 こうやって世間から弾き飛ばされていくんだろうな。
自業自得。 >>452
通常使う場合(Xmlとかで)はTextViewとかButtonと指定するだけでよい。
そうすると、勝手にTextViewの実装が置き換わるようになっている(Support/AndroidXを追加している場合だけだが)。
その様子はview hierarchyを見ればわかる。
ところが、AppCompat〜と指定しまうと、実装がそれ決め打ちになってしまい良くない。
Support/AndroidXはOSとは別にバージョンアップしていくからね。 Fragment内でリストビュー表示を試みています。
テキストだけの簡単なリストビューは作れました。
次のステップとして画像やテキストを組み合わせて表示するリストビューを挑戦しています。
kotlinのサンプルが少なく、たまたま見つけた下記のサンプルコードをそのまま打って試しました。
https://www.usaco-pg.com/2017/07/02/kotlin-android-custom-listview/
MainActivity.ktでの記述は表示対象のFragmentの継承クラス内で行っています。
そのページ中段あたりにある、
holder = ViewHolder(
view?.nameTextView!!,
view.descTextView,
view.flowerImgView
)
このviewに対応するプロパティが無いとエラーが出てにっちもさっちもいかない感じです。
layoutのIDをそのまま記載しているようなのですが、コーディング段階でエディタが赤色(関連付けられてない)になってしまいます。
間違いなど無いかコードも一字一句確認したのですが、問題なく、これで一日が潰れてしまいました。
動かない原因が皆目検討つかず、ご覧になってご存知であれば教えていただきたいです。
(そもそもの問題で、この先のコードで正しいのでしょうか?) 417ですが自己解決しました。
importでlayoutのviewを読み込んだところ通りました。
代わりにArrayAdapterを継承したFlowerListAdapterの第一引数でcontextの型がミスマッチでエラーとなりました。
おそらくMainActivityとFragmentの差かと思うのですが、ちょっとこれは調べてみます。 recyclerviewでepoxyライブラリおすすめ 自己解決というか、一応動いたというか、
this.context
これを
this.activity!!
と直したら動きました。
何故動いたのか理屈が分かっていないので気持ち悪さが残りますね。
>>458
調べてみます。
ありがとうございます。 因みにいくつか試したものとしては
通った
this.activity!!
エラー出た
this.activity
this.context
this
あと、一旦valでローカル変数のcontextにthis.contextを代入したりもしてみましたがエラーでしたね。
理屈を理解して試したわけでなく、どれも検索した先の受け売りです。
理解度としては全く進んでないですね、困ったものですが。
そもそもcontextとはなにか、activityとはなにかを理解していません。
検索しても根本的なことに触れているようなものがヒットせず、おまじないレベルでしか理解できていない感じです。 このトピに当てはまるか分からないのだけど、他に質問できそうなところがないのでここで。
FMSでアプリにデバッグでプッシュ通知送信しているんだけど、プッシュ通知がAndroid端末に送れる時と送れない時がある。
送り方としてはトピックに登録させて、それに対してFirebaseコンソールから送信。
最初は送れていたけど何度か試しているうちに届かなくなった。
自サーバからPHPでFMSのAPIを呼んで同じトピックに送信すると、コンソールから送れなくなってもAPI経由で送れることもある。
設定は全く変えてないのにとても不思議なのだけど、原因が全くわからない。 ストアの新アイコン、自動的に角丸に表示されるんじゃなかったの?
今見たら四角のままなんだけど フォグについての質問なんですが
スタート位置を奥の方にすると
手前に逆フォグがかかってしまうのですがデフォなんですか?
例えば黒いフォグを奥にかけると手前が真っ白になり
白いフォグを奥にかけると手前が真っ黒になります
わけがわかりません slackに毎週月曜朝コードレビュー担当をランダムで決めて通知したいんだが
無料で使える環境としてどれがいいんだ 名簿作ってサイコロ振って当たったやつにレビューしろってメール出す ピタゴラスイッチは一回きりの動作じゃないですか
定期実行で自動化したいです 毎朝ピタゴラ装置を元通りに並べる係をサイコロ振ってランダムで決めればいい 火や水のやつもあるけど復元が困難だな部屋の中もメチャクチャになるし 自分で作りゃいいじゃねえか。このスレはアプリの有無を聞くスレではなくプログラミング質問スレなんだし。 メールをタイマーで送信する機能with宛先がランダム
だから、名簿のn番目を乱数で指定 自動化ってのは要するに自分でやらずとも勝手にやってくれているってことだろ?
部下や後輩にやらせればいいんじゃね?
人がやるなら自動化じゃないロボットがやるなら自動化と言うなら
部下や後輩を人として見なければいいだけ
簡単だろ
社畜は働く豚であって人じゃないからな 必ず全員当たるようにシャッフルするだけがいいだろうな 祇園祭の巡行順は特定の権益山鉾を除いては毎年抽選順だが
抽選は毎年リセットなので連続で一番籤を引く町がある一方
何年経っても籤運の悪い所は一番籤を引けない >>485
その信用は手動とアプリとで何が違うのかわからん 乱数を発生させて、その番号を全員にメールすりゃいいだけじゃん
受け取った側が、その数字見て自分かどうか判断すりゃいい話 抽選はアナログ以外信用できない
なぜ宝くじはアナログ抽選ではないのか?
ボール使うやつ 宝くじの抽選は機械仕掛けのダーツだっけ?
まあ人がやるとバラエティ番組みたいになっちゃうしね あのダーツ、抜き打ち検査で何度も押してみて欲しい
いつ押しても、決まった番号しか射抜かれないなんて事はないよな? 自称androidプログラマーが住人となって常駐し、
暇に任せて雑談するスレ。 ###ここまで俺が作った自動レスアプリによる自動投稿です### スリープ中に時間がきたら計算して通知出したいのだが
SCREEN_BRIGHT_WAKE_LOCKが非推奨になってる
どうすりゃいいんだよ BroadcastReceiverのonReceiveで発信取得してるだけど
モバイル発信かSIP発信か区別する方法わかれば教えてください! recyclerviewのクリック処理を実装しています。行に配置したテキストビューをクリックするとイベントが発火するのですが、それ以外の箇所(テキストビュー範囲外)は発火しません。どのようにしたら良いのでしょうか? テキストビューをコンテナなる他のビューグループ内に配置して、そのビューグループを目一杯広げと配置してそのビューグループにクリック処理 >>502
LinearLayoutのなかにテキストビューを配置し、LinearLayoutのclickable、focusableをtrueにした状態でクリックイベントを発火させる感じでしょうか? >>504
そう。そのLinerLayout自体はmatch_parent?だっけか、目一杯広げて配置する >>505
LinearLayoutを横幅いっぱいにすることでクリックイベントを発火させることができました。しかし、どこをクリックしてもイベントを発火させたViewのidがLinearLayoutのidのようです。
ツイッタークライアントのように、一行の中にあるそれぞれのview(ボタン、テキストビュー)のクリックイベントを拾いたいです。
どうすればよいでしょうか? 未だにイベント発火の「発火」に違和感を感じる、おっさんです。
失礼しました >>506
ボタンやテキストにもクリックイベント仕掛ければいいじゃん。複数に仕掛けるって発想ない? studioアップデートしたらエミュレータ実効出来なくなった…
実機のUSB接続も不可…
前のバージョンに戻す方法教えて下さい
勉強中の素人です
すいません 素人質問ですいませんが
クラス1で計算して出した座標値(x,y)を
クラス2で点として画面に表示したいです
クラスが変わると(x,y)が使用できず悩んでます
クラスのインスタンスとか継承とかを勉強したらいいのかな?
数値をあっちこっちに送る方法がわからない >>520
その内容ならまだ継承は勉強しなくていい
クラスとインスタンスの違いは勉強した方がいい
アクティビティでクラス1のインスタンスを作り座標を計算させて戻り値で座標を戻し、クラス2のインスタンスを作って引数に座標を渡せばいい ActivityのレイアウトXMLにFragmentを記載したのですが、パラメータを付与して表示される内容を変更したいのですが何かXMLに記述する方法はありますか?
setArgmentsはコードでaddしたときしか有効にならなかったです。 >>520
生産性とか考えずにとにかく完成を目指すなら
全部public staticで押し通すがいい canvasってサイズ変更できないの?
Design画面で変更できればいいのに Localeから言語や国コードを取得できますが、例えばen_JPという組合せを端末の設定次第で取得できるものでしょうか。
iPhoneの場合、設定メニューにて「iPhoneの使用言語」、「地域」で言語と国(地域)を別々に設定できますが、Androidの場合は言語:英語を選択しても国コード:日本は設定できない認識で相違ないでしょうか。 趣味アプリにボイスチャット機能付けるのに簡単な方法ってないですか
サーバー側の知識全然ありません You attacked the slime, and caused damage by 10. こういう国際対応のstring.xmlを作るとき
単語レベルならそのまま書けばいいけど
英語は主語+動詞+目的語となり日本語と語順が違うのはどう対処すればいいの? iOSで開発したアプリのAndroid版を作ろうと思って「アプリ開発の教科書」ってのを買ってみた。
最初のサンプルがどうにも動かないので、次に進んだらandroid: を入力しようとすると
「aandroid」が候補になって「android」だと赤文字になってしまう。そのままタイプして完成させたら動いた。
動いたからまぁいいんだけど、「a」が一つ多いのってコレは何故なんでしょう? androidは予約ワード、aandroidは自分で作った変数とか?
その候補は好きな名前付けれって候補でしょ
などと知ったかしてみる xmlですかね?
一番上の定義してるところがaandroidになってるんじゃ 既存のリソース呼び出す時にandroidから始めなかったっけ そう、xmlです。ダウンロードしたサンプルだとちゃんと記述されているのに自分では上手くいかない… >>537です
ダウンロードしたサンプルは動作するんだよね、テキストどうりです。
ところが自分で新規プロジェクト作って、strings.xml, activity, MainActivityをコピペすると動かない。
「Unresolved reference: R の連発で動作しません。何が原因でしょうか? 連投スミマセン。。。
自己解決しました。packageの指定が間違えていただけでした申し訳ない… android studio 3.5に更新したら、
サジェストがおかしくなりました。
オブジェクトのすぐ後にドットで、
これまではメンバが候補に出てきたのですが
条件文とか構文ばかりサジェストされます。
なんじゃこれは…
どこの設定を触れば直るでしょうか?
すみませんが教えて下さい。 エラー: クラスRはpublicであり、ファイルR.javaで宣言する必要があります
ってのが頻発するんだけど、コレはどういうエラーですか??? >>540
サジェストはアルファベット順にソートするかどうかを選択できる >>542
R.java の生成に失敗してるんじゃないの? >>544
さっきまで動いていたのが、スリープから復帰後にエラー吐き出したりとか。
>R.java の生成
ってどういうコトですか? >>545
R.javaは自動生成されるリソースを管理するクラス
エラーの文言的に自動生成周りでなにか失敗してるっぽい エラーメッセージにR 2.javaやR 3.javaってファイル名が出てない?
原因不明だけどとりあえずCleanしてからBuild メッセージには…
>public final class R {
private R() {}
public static final class attr {
private attr() {}
public static final int alpha = 0x7f020027;
から始まる長いコードがずらーっと出てきます。
全部削除してもまた出てきます(泣 ただImageViewボタンを配置しただけのアプリですが、ツールウインドウには…
>Java Cumpiler: (55 errors)
>/Users/genzan/Library/Mobile Documents/com~apple~CloudDocs/Android/rokusenhou
>
>app/build/generated/not_namespaced_r_class_sources/debug/r/androidx/asynclayoutinflater/R 4.java
>
>エラー: クラスRはpublicであり、ファイルR.javaで宣言する必要があります
>
>app/build/generated/not_namespaced_r_class_sources/debug/r/androidx/core/ktx/R 2.java
>
>エラー: クラスRはpublicであり、ファイルR.javaで宣言する必要があります
>
>app/build/generated/not_namespaced_r_class_sources/debug/r/androidx/core/ktx/R 4.java
>
>エラー: クラスRはpublicであり、ファイルR.javaで宣言する必要があります
ってのがずらーっと出てきます。 読んだんですけど意味が判らなくて(汗
調べてみたら、Build→CleanProjectですね、出来ました!!!
どうもありがとうございます。。。 分からないのはいいけど
せめて会話のキャッチボールくらいは出来るようになっておいた方がいいと思う キャッチボールで解決してお礼までしてるだろ。
初心者丸分かりなのに死ねとか、自分ら解決策出したワケじゃねーのに
恥しくないのかね? Android Studio最新版にしたら、エミュレーターがどうやっても動かなくなった。
Emulator: PANIC: Broken AVD system path. Check your ANDROID_SDK_ROOT value [C:\Android\AndroidSdk]!
環境変数ANDROID_SDK_ROOTの値はAndroid Studioの値を忠実にコピペしているから間違いないはず。
どうしたものか? >>557
因果が逆じね?
Android Studio は、環境変数が設定されてたら、SDK の場所をそこにするはず だから、もともと環境変数に間違った場所が設定されていたら、Android Studio の値をコピペしてもダメだろう >>557
SDKが見つからないって話ではなくて、導入されているSDKのバージョンが合って
いないってことじゃないかな そこデフォルトのパスじゃないと思うから本来参照すべき場所が間違ってるんじゃないかな
デフォルトの場所はググって >>553
オマエ、そろそろキャッチボールして見せて下さい。 Androido 2.3のGPSデータの更新ってどの時間と同期してますか?。 アプリが完成したのでAPKファイルに変換したいのですが…
Error
Key was created with errors:
Warning:
jksキーストアは独自の形式を使用しています。”keytool-Importkeystore…
となってAPKファイルが作れません。何が原因でしょうか? リリース用のキーを作成して設定していないからではと脊髄反射で言ってみる それだと思うのですが、上手くいきません。エラーは…
… -deststoretype.pkcs12”をしようする業界標準の形式であるPKCS12に移行することをお薦めします。
で終わる長ったらしいものですが、どうにも意味が判らない。ググると沢山のページが出てきますが、
どれも似たり寄ったりで解決出来ません。う〜ん… 日本語が不自由っぽいけど
書いてある通りにすればいい ダメですね… 他の海外サイトも読んでみましたがどうにもなりません。
何か下準備とか必要でしょうか? macの環境は知らん
keyStorePathのチルダ記号と、test,jksなのにエラーはtest.jjksになっているのが気になった
以上 >>570
>>569を読んで何を試して何がダメだったのか詳しく たぶん Key was created with errors は単なる警告なので、無視してもいいんじゃない? Windows ならそのエラーダイアログを OK で消して次に進んで app/release/app-release.apk つくれたよ
つくった app-release.apk をエミュにインストールして動作した
署名がホントにちゃんとできてるかは google console にアップデートしたときにわかるから、ダメだったらそのとき考えればいい >>571
>test,jksなのにエラーはtest.jjksになっているのが気になった
それですね、うpしたあと自分で気付いて修正しましたがダメでした。
>>572
翻訳して読んでみましたが、自分に理解して実行するスキルはありませんでした。
>>573
>>574
何度か無視して進んでみましたが、apkは作れませんでした。
と、思いきや、アプリのapp→releaseの中にapkファイルが出来ていました!
今度はパッケージ名の不正でエラーとなりましたが光明が見えました。
1からやりなおしてみます。。。
皆さんありがとうございました m(_ _)m 素直に理解できませんでしたって言えば訳してあげたのに…
なにが「ダメですね」だよ >>576
>>575で…
>自分に理解して実行するスキルはありませんでした。
と素直に書いてあります。
現在、無事に内部テストの公開開始待ちですが、
エラーが表示される問題自体は解決されていないので、
差し支えなければ翻訳して解決の手順をお教え下さい。 ↑の>>553や>>556みたいに話が終わってから口出しするようなヤツにできるわけねーだろw これから新しいアプリを最初から作る場合、言語はKotlinにした方がいいのかな?
それともJavaの方がいいのかな?
今まではJavaベースでアプリをもっぱら作ってきていて、Kotlinの経験が無いので
迷っています。 javaの経験が豊富ならkotlinも触ってみればよし
迷うところが違うんじゃないの? Android Studio 3.5.3のLinuxユーザーです。
コピー&ペーストを使わずに画像をres\drawableに追加する方法はありますか?
この方法だとChoose Destination Directoryダイアログが開かないので。 知らんけどプロジェクトクリーンで何とかならんの
権限関係で引っかかってる?ホームにインスコ汁べしみたいな >>564, 578です。先ほど…
>○○様
> Google Play チームにお問い合わせいただきありがとうございます。
>
>先ほど再送信されたお客様のアプリ、******, (com.******l.******) が承認されましたのでお知らせいたします。 Google Play のポリシーに関する問題の修正にご協力いただきありがとうございました。
>
>他にご不明な点などがありましたら、お気軽にお問い合わせください。
>
>Google Playチーム
というメールが来て無事に公開できました^^v アドバイスを下さった方々ありがとうございました m(_ _)m
最初は「ボリシーに違反」で否承認だったんですよ。数回のメールでの問い合わせで公開に至りました。
これまで3冊ほど参考書を買いました。で、アプリの公開に言及しているのは1冊だけ、そしてそのとおりににはいかなかった。
メールでは日本人スタッフが日本語で対応してくれました。諦めかけていたんだけどなぁw
Google Playで自分のアプリが見えるのは嬉しい♪ 長文失礼しました。。。 これがエラーになるのは何でですか?(´・ω・`)
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val db = ((MainActivity::_helper as DatabaseHelper).writableDatabase)
} もうちょっと流れを書いてくれるとアドバイスがあると思う。 コレ、一瞬起動しますが、すぐに修了します。再度実行すると「繰り返し停止しています」で起動しません。
class MainActivity : Activity() {
public override fun onCreate(savedInstanceState: Bundle) {
super.onCreate(savedInstanceState)
// res/layout/screen1.xml を初期画面に
setContentView(R.layout.screen1)
title = "画面1"
val btn2 =
findViewById<View>(R.id.btn2) as Button
val btn3 =
findViewById<View>(R.id.btn3) as Button
btn2.setOnClickListener {
val intent = Intent(
this@MainActivity,
Screen2Activity::class.java
)
startActivity(intent)
}
btn3.setOnClickListener {
val intent = Intent(
this@MainActivity,
Screen3Activity::class.java
)
startActivity(intent)
}
}
}
何処に問題があるのでしょうか? >>590ですが、エラーじゃないから困っています。>>586とは別人です。
死ねとか頭とか、解決出来ないならレスしないで下さい。 >>594
アプリが落ちそうな箇所は幾つか見受けられるけど(as Buttonとか)、
そのソースだけだと判断が付かないから(リソースの何処かが原因かもしれないよね)、
アプリか落ちたときのエラーログが無いと誰も答えられないよ、と言っているのに、
「アプリが落ちるんです、エラーじゃないです、分からないなら黙ってて下さい!」
では誰も答えてくれなくなるよ
答えが欲しかったら一回落ち着け 落ち着きました。
val btn2 =
findViewById<View>(R.id.btn2) as Button
に問題があるのでしょうか?
改めて見てみるとpackageContextがグレーなんですね、認識されてない? わざわざキャストする必要ないんじゃね?
findViewById<Button>
ちょっと前(25-27辺りだったと思う)のSupportLibのバージョンから、ジェネリックになった。 向いてないから死ね。2度とAndroid Studioを起動するな いいえ、死にませんし起動します。
単一画面のアプリ作ってそれはもう公開されていますから。
>>598
アプリの一つも公開出来ないあなたに言われたくない。
今度はボタンで3画面を使いたいのですよ。
>>597
どういうコトですかね? 多分単純なミスだと思うのですが。。。 ミスというレベルじゃない。
意味が分からないってことはJavaの基本がわかってないってことだ。 >>590で書いたとおり、一瞬起動するんですよ。
エラーにはならないからエラー内容は書けません。 >>601
Javaの基本はわかりません。だから質問スレにきました。
ご存じなら答えを教えて下さい。
http://web-dou.com/android/screen_activity.html
このとおりにしたいんですよ。ヒントが欲しいです。 バカすぎて回答する気が失せた...
誰もビルドエラーの話なんかしておらん... Javaのサンプル見ながらKotlinで書いてるのか?
初めからKotlinのサンプル探すがKotlinあきらめてJavaで書くかのどっちかだな >>603
コンパイルエラーっていうのとランタイムエラーってのがあるんだ
君のはランタイムエラーが発生している状態
ランタイムエラーはlogcatで確認できる
悪いことは言わないから回り道だと思ってもAndroidStudioでのランタイムエラーの見方を調べてこい
そして実際の内容をここに貼るんだ
どうせボタンのぬるぽだがな ああヌルポか始めたばかりは出たな
まあ自力でヌルポ祭りを乗り越えてこそ真の開発者になれるぽ デバッガーを起動して、1行ずつ、デバッグすれば?
どこかで、実行時(ランタイム)エラーで落ちる
それと、荒らしにレスを付けるな!
意味のない書き込みは荒らしだから、相手をするな!
死ねと書いている荒らしは、今までに何百も書き込んでいるから
5ch では、荒らしの相手をする者も、荒らしと同罪だよ! いや、普通さ
> アプリの一つも公開出来ないあなたに言われたくない。
なんて豪語するくらいの人がランタイムエラーが分からないとかlogcatを知らないとか思わないじゃん...
何か話が噛み合わないなって思ったら、「何処に出てくる何のエラーの話?」とか聞けばいいじゃん
何で堂々と「貼り付ける内容はありません」て逆ギレしてるんですかね ガッ! ああ、コレですか…
2020-01-18 08:27:35.632 1642-4771/? E/AudioPolicyIntefaceImpl: getInputForAttr permission denied: recording not allowed for uid 10041 pid 5701
2020-01-18 08:27:35.632 1642-4771/? E/AudioFlinger: createRecord() checkRecordThread_l failed
2020-01-18 08:27:35.632 5701-548/? E/IAudioFlinger: createRecord returned error -22
から始まって真っ赤なラインがしこたま出ています。関係ありそうなのは…
at java.lang.Runtime.loadLibrary0(Runtime.java:1012)
at java.lang.System.loadLibrary(System.java:1669)
at dgm.<clinit>(SourceFile:609)
at cuo.a(SourceFile:7)
at llj.a(SourceFile:10)
at bso.am(SourceFile:502)
at buh.o(SourceFile:46)
at bui.run(Unknown Source:2)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:764)
からですかね、部分的に色がグレーなのでそこが引っ掛かっているかもしれません。 多分それ違うなぁ
FATAL って単語でログを検索してごらん
すぐ下に自分の作ったアプリのパッケージ名があればビンゴ Logcatとか、書籍のサンプルプログラムでも赤いの沢山でるので気にして居ませんでした。動くので。 2020-01-18 09:03:46.770 5701-3745/? W/ErrorProcessor: onFatalError, processing error from engine(4)
com.google.android.apps.gsa.shared.speech.b.g: Error reading from input stream
at com.google.android.apps.gsa.staticplugins.microdetection.d.k.a(SourceFile:91)
at com.google.android.apps.gsa.staticplugins.microdetection.d.l.run(Unknown Source:14)
at com.google.android.libraries.gsa.runner.a.a.b(SourceFile:32)
at com.google.android.libraries.gsa.runner.a.c.call(Unknown Source:4)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
onFatalError, processing errorというのが見つかりました! うん、それも違うかなぁww
FATAL EXCEPTION
で再度検索してみて でも…
2020-01-18 09:20:27.336 1642-1642/? E/AudioPolicyIntefaceImpl: getInputForAttr permission denied: recording not allowed for uid 10041 pid 5701
2020-01-18 09:20:27.336 1642-1642/? E/AudioFlinger: createRecord() checkRecordThread_l failed
2020-01-18 09:20:27.336 5701-3935/? E/IAudioFlinger: createRecord returned error -22
2020-01-18 09:20:27.337 5701-3935/? E/AudioRecord: AudioFlinger could not create record track, status: -22
2020-01-18 09:20:27.337 5701-3935/? E/AudioRecord-JNI: Error creating AudioRecord instance: initialization check failed with status -22.
2020-01-18 09:20:27.337 5701-3935/? E/android.media.AudioRecord: Error code -20 when initializing native AudioRecord object.
コレが赤文字なんですよ。そしてMainActivityで…
pacageCentext: がグレー表示なんですね、コレを何とか出来れば動く気がします。 >>616さん
2020-01-18 09:20:27.336 1642-1642/? E/AudioPolicyIntefaceImpl: getInputForAttr permission denied: recording not allowed for uid 10041 pid 5701
2020-01-18 09:20:27.336 1642-1642/? E/AudioFlinger: createRecord() checkRecordThread_l failed
2020-01-18 09:20:27.336 5701-3935/? E/IAudioFlinger: createRecord returned error -22
2020-01-18 09:20:27.337 5701-3935/? E/AudioRecord: AudioFlinger could not create record track, status: -22
2020-01-18 09:20:27.337 5701-3935/? E/AudioRecord-JNI: Error creating AudioRecord instance: initialization check failed with status -22.
2020-01-18 09:20:27.337 5701-3935/? E/android.media.AudioRecord: Error code -20 when initializing native AudioRecord object.
が出ました。。。 >>618
AudioRecordクラスなんて使ってる?
使ってないなら関係ないと思うけど...
一回logcatをクリアして、すぐアプリを起動して、すぐ落ちたときのログを確保するんだ とりあえず onCreate メソッドの中の super.onCreate(savedInstanceState) 以外をコメントアウトして動かしてみろよ
それで落ちるようならもっと根本的な何かが間違ってる >>619
使っていないです。
2020-01-18 15:33:19.993 11699-11699/com.gmail.suzukigenzan.test E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.gmail.******.test, PID: 11699
以下真っ赤なメッセージがずらーっと出ています。 >>620
https://dotup.org/uploda/dotup.org2042344.png
このvalから始まるコードが無いと、普通に表示されます。
グレーのコードが怪しいと思って居ますが、ボクも根本的な何かが間違っていると思います。 こんなに沢山のアドバイスを下さるとは思っていませんでした。どうもありがとうございます m(_ _)m
画面の遷移でググってみましたが、ちょっと情報が古いものばかりです。
インテントで検索してみたら、また沢山出て来たのでもうちょっと参考にしてみます。
ボタンを押して画面を遷移させるのにコレだけ苦労すると思っていませんでしが、なんとかしたいです。 なんでその真っ赤なメッセージを全部貼ってくれないんだww
焦らしてるのか >>621
ログ等を貼る時、ここじゃなくPasteBinなど使えよ。
ここに貼ると、ソースはインデントが消えて読みづらいし、ログは長すぎて興味の無い人に迷惑だし。 >>622
グレーのコードって言ってるのは多分kotlinのエディタが親切に表示してくれているメソッドの仮引数名だ
まるで検討違いだ >>622
それならレイアウトファイルの screen1 を貼れや 全部貼ると文字数オーバーで送信できません。最初から貼っていきます…
2020-01-18 18:50:45.181 15697-15697/com.gmail.:******.test E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.gmail.:******test, PID: 15697 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.gmail.******.test/com.gmail.******.test.MainActivity}: java.lang.IllegalArgumentException:
Parameter specified as non-null is null: method kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull, parameter savedInstanceState at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2913)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3048)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1808)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:6669)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858) Caused by: java.lang.IllegalArgumentException: Parameter specified as non-null is null: method kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull, parameter savedInstanceState
at com.gmail.suzukigenzan.test.MainActivity.onCreate(Unknown Source:2)
at android.app.Activity.performCreate(Activity.java:7136)
at android.app.Activity.performCreate(Activity.java:7127)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1271)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2893)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3048)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1808)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:6669)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858) >>626
PasteBinとか知りませんでした、スミマセン。。。 なんだこのエラーは...
何をしたらこんなの起こせるんだ
ていうかkotlinの時findViewByIdメソッドを使った覚えがないんだが
変数宣言(valから始まる2行だけ)削除してもビルド出来ないか?
(import文増えるが説明はしない) >>634
で、
kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull
でググってみ、
一杯情報が見つかるから >>637, 638
public override funの「Bundle」を「Bundle?」にしただけで解決しました。
はてな1個で変わるものか!? ありがとうございました。コレで先に進めます!
拙い質問にお答え下さった方々、本当にありがとう m(__)m いやお前は向いてないから死ね
これからも多くの人に迷惑を掛けるし何も完成させられず時間を無駄にするだけだから死ね Parameter specified as non-null is null: method
やっぱり、初心者はヌルポw
普通、1行ずつデバッグすれば、分かるだろw
Ruby なんか簡単!
NoMethodError: undefined method `メソッド名' for nil:NilClass
nil から、メソッドを呼び出そうとした! >>639
あー、null許容型のトラップか
Javaから手作業で移植しようとしたらよく起こるやつだ...
うーん気がつかなかった
役に立たなくてごめんね ごめんね、なんてそんな、とんでもない。仰るとおり…
>Javaから手作業で移植しようとしたらよく起こるやつだ...
のコトが起こりました。>>638の言うとおり検索したら見つかりました。
>ndroid Studioのkotlinへの自動変換を信じすぎないようにしよう。
ですとw 勉強になりました。思い通りのコードが書けるようになるにはまだまだ先は長いです^^; へー自分もコトリン移行する時に気をつけよう
質問者の人も解決報告ありがとうございます 実行時エラー確認のときはそのアプリのlogcatだけ見ようね
Android Studioでできるから アクションゲームを作るとき、どの技術を使うことが多いの?
canvasにゴリゴリ書くのかな? 自機のわきを斜めに通りぬけただけなのに弾が当った!!
クソゲーだ!!ってわめきちらすやつがでてくるから んなこといったら粗方クソゲーだわな通貨ドット単位で判定してる方がクソだわ 通過してるなら当たってないと思われるのも仕方ない
通過させずに当たったと判定した時点で爆発させれば
多少位置が離れていても破片が当たって死んだと納得出来るはず 案外他人のレスって読んだつもりでも理解してないよな 複数の画面を遷移して色々やるアプリを作っていますが、どうも上手くいきません。何か
「MainActivity」が勝手に「MainActivity.kt」と名前が変わっているんですね。
この.ktが付く理由って何でしょう? >どうも上手くいきません。
これだけで何が原因なのかわかるエスパー募集中か 判る人には判る話しなんです。普通は拡張子の.ktとか付かないんだけど、何かの拍子に付いてしまう。
多少なりとも開発の経験があるなら知っているハズ。判らないなら黙っておいて貰えますか? >>564
>>567
おまえら一度もアプリ公開したことなんかねーだろ?w >>658
開発の経験がある人ほど、具体的な挙動を提示してくれた方が、具体的な回答が出来るんだけどな
遷移なら大抵はアレが原因だけども、具体的な挙動が不明だから回答は言われた通り黙ってることにする 具体的な挙動は「MainActivity」が勝手に「MainActivity.kt」に変わった、です。
その理由を知りたくて質問しました。もっと書くとそのせいで
val intent = Intent(this, MainActivity::class.java)
IntentでMainActivityが赤くなって選択できなくなりました。以前にもあったんですよ。
結局1から作り直すハメになって、現在そのアプリは公開中です。
今回ちょっと手の込んだアプリを作っていて、やり直しはしたくないので質問しました。
不快にさせた方にはごめんなさい。 メニューのCode->Convert Java File to Kotlin Fileで、
MainActivity.java“ファイル”はkotlinに変換されてMainActivity.ktに名前が
変わるが、MainActivity“クラス”が勝手にMainActivity.ktクラスに変換され
ることはない。
あなた自身がファイル名とクラス名を混同して何か間違った操作をしてクラス
名が変わったとしか思えない。
とりあえず、Kotkinソース中の文字列"MainActivity.kt"を全て"MainActivity"
にしてみたら? >>663
>あなた自身がファイル名とクラス名を混同して何か間違った操作をしてクラス
>名が変わったとしか思えない。
そのとおりだと思います。何かを間違えている。
activity_mainもtools:context=".MainActivity”が真っ赤なんです。
アドバイスありがとうございます。もう少し頑張ってみます! android端末をつかって、httpdサーバーやっている人いますか?
PHPやJavaが動けば再考なんですけどね
\(^o^)/ >>662です。無事にアプリが完成して、公開を待つばかりとなりました^^v
https://dotup.org/uploda/dotup.org2047237.png
審査が通るかドキドキですが、まぁ前のアプリが通ったので大丈夫でしょう♪ 何か付け間違えていたな。
>>654
>>657
注文付ける人は解決策出せないw
App公開してみたら? 出来ないんじゃね?www >>660
とか原因判っているなら教えればいいじゃんか。
ココは質問スレなのに。 すいません相談に乗っていただきたく・・・
エミュでは正常に起動するんだけど実機デバッグするとDBのテーブルが無いって言われてすぐ落ちてしまいます。
初起動時にアセットからSQLiteのDBコピーしてるんですが、adbでパス確認してもちゃんとあるんですよね。
新規エミュでも正常に動くのになあ・・・心が折れそうです。
ちなみにAPKはこれです。
https://dotup.org/uploda/dotup.org2047779.zip
1台しか持ってないんですが俺の端末が悪いのかなあ すみません>>671 です
Android Stdioのスレの方が適切でしたかね・・・
そっちで聞いてみます、スレ汚しごめんなさい どっちでもいいんじゃ
権限ないとかそういうことじゃないよね? いや、ココの人、たまに頭おかしいとしか思えない人がいますが、親切な人のが多いです。 play以外からインストールしたものかどうか判別する方法ってないんですか?
OS自体はアプリの詳細のところで「以外から〜」の表示があるので認識はしているようですが Androidのいろんなセンサーなど
いろんな機能を使いこなすための
参考になる本はないですかね?
解説本でも演習問題とその解説でもいいのですが 「作って楽しむプログラミング Androidアプリ超入門」
にならセンサーの記述がある。参考になるのかは保証しないけど。 センサーって、カメラ・GPS とか?
検索すれば、一杯あるのでは?
web 系の雑誌には、ちょくちょく載ってるけど >>677
ありがとうございます!
この本で理解できなかったらあなたの責任にしますね でもこの本を1冊丸ごと読んでも
おみくじアプリ1個しか作れないの?
10種類くらいの系統の異なるアプリを作る、みたいな感じの本を探していたのですが(><) 数個のセンサーならべて
うーん、おみくじしか作れなくね?
と思うなら、そうであろうぞ >>679
>この本で理解できなかったらあなたの責任にしますね
この一言でもうね、最悪でしょ。 >>674で
>いや、ココの人、たまに頭おかしいとしか思えない人がいますが、親切な人のが多いです。
って書いたのボクですが、まさか質問者が頭おかしいと思っていませんでしたorz Androidアプリは全く作った事無いのですが、例えばインストールしたユーザーの連絡先に登録されているメールアドレスに、自動的に一斉に特定の文面をバックグラウンドで送信する、といった機能を実装することはできますか?
できるとしたら、言語はJavaでもKoltonでもokでしょうか? いずれにしろ割と簡単に実装出来ると思うけど
いずれにしろ割と簡単にブラックリスト入りするはず SoundPoolを使った音の出力で、Androidが持つ音量設定に影響されずにアプリ
独立の音量で出力する方法を御教示ください。
現在、
ttps://pastebin.com/qZzn8ZGk
のようにしており、Android4.4.2のスマホ、Android6.1のタブレットでは意図
した通りの音量になってくれますが、Android9のスマホで「メディア音量」の
設定の影響を受ける(soundPool.playに渡した値に「メディア音量」の設定を
掛けた音量になる)ようです。
AudioAttributesのsetUsage()・setContentType()をいくつか試してみましたが、
ダメでした。
よろしくお願いいたします。 >>688
なるほど、ありがとうございます。挑戦してみます。
ゲームだと思って起動したら、勝手に彼女や上司に「死ね」ってメールを送るアプリを作ってみます。 審査員から多額の賠償請求かな。アメリカなので高めの。 第百六十八条の二 正当な理由がないのに、人の電子計算機における実行の用に供する目的で、次に掲げる電磁的記録その他の記録を作成し、又は提供した者は、三年以下の懲役又は五十万円以下の罰金に処する。 Android Studio 3.5.3でエミュレーター使って日本国内向けアプリを開発してるけど、
エミュレーターの動作言語を日本語にするにはどうしたらいいのでしょうか?
そのままだと英語で動いてしまいます。
AVD Managerとかエミュレーター本体の設定を見ても、言語設定の項目が見当たりません。 下から上にスワイプしたらSettingが出てくるはずだから、Systemで言語を追加できる。 >>701-702
無事日本語化できました。ありがとうございます! Androidエミュで、AVDから投げたUDPパケットのレスポンスが
・APIレベル23(Android6)だとUDP受信(DatagramSocket)可能
・同じソースコードで、APIレベル28(Android9)のエミュだと受信不可能
になってしまう。パケットキャプチャしてみて、AVD側の受信ポートが開いていないっぽい感じ。
(Port unreachable)
Android9のエミュで何かポート開けたりとかFWの設定する必要ありますか??
エスパー回答でも何でも求む! >>704
実機でも起きてるっぽいね
ttps://search.yahoo.co.jp/search?p=DatagramSocket+not+receiving+Android9&x=wrt&aq=-1&ai=si8V_5GkS9qyjEfsb6KsMA&ts=2709&ei=UTF-8&fr=top_ga1_sa >>704
追記
もし自分だったら・・・
targetSdkVersion.apiLevel 23 でビルドしたAPKを
Android9に入れて試して見る。(これはAndroid6と同様に動く“はず”)
これで動いたなら、9対応に必要な修正がなされてない可能性大。
動かないならエミュのせい“かも”。
前者なら、23〜28のどこで動かなくなるか試せば、どの対応がなさ
れてないか判る“かも”。
後者なら、実機 or 他のエミュで試す。 >>705-706
情報ありがとうございます。
Android9の実機(富士通Arrows)にtargetSdk23のままで実行してみるもUDPレスポンス受信できず。
ちなみに同じソースのままAndroidエミュをAPIレベル29(Android10?)にしてみるとちゃんと受信できました。
なのでソースをAPIレベル29に対応させて実機デバッグしてみます(apacheのHttpライブラリを全部置き換えないと・・・) プロジェクトつくるときに
・ビルドターゲツト
・最小SDKバージョン
の違いと使い分けはなんですか? レイアウトのxmlで
タグのandroid:onclick="testFunction"と書きますが
"testFunction()"のようにカッコの()をつけたらダメなのですか?
まぎらわしいから関数なんだから()をつけたくなるど。 >>709
このアプリは基本的にこのAPIレベルを使いますよと宣言するのがターゲットAPI
古い端末でも動くようにこのAPIレベル(下方向に)まで使いますよって宣言すのがMinSDK
ただし、MinSDKは古いAPIライブラリのエントリにアクセスできるようにしてくれるだけなので、
ターゲットAPIからMinSDKの間で共通のAPIのみを使用するならば、ターゲットAPIから
MinSDKの間の端末で動作するけど、特定のAPIレベルでしか動作しないAPIを使用する
場合には作成者がプログラムの中で端末が使用できるAPIのレベルを確認して、各々の
APIレベルごとに処理を記述する必要があるあったかな
>>710
意識高い系開発者集団のgoogleでは、UIとロジック実装は完全に分離された状態なおかつ、
UIの実装にはUIを表現するのに適した言語、ロジックにはロジックの実装に適した言語って
発想があるですね
で、xmlはあくまでレイアウト構造を記述する言語なんで「()」みたいなメソッドを表すような
記述は美しくない(w)とかなんとか
なんでxmlの中では「()」を指定できないんだけど(指定すると使えないキャラクタが
あるってエラーになる)、分離って言われてもなんか直感的じゃないのでjavaのほうで
findViewByidメソッドでレイアウトのインスタンス探させて、プロパティのOnClickListenerに
登録してる人が多いんじゃないかな >>712
なるほどありがとうございます。
完全には理解してないけどめちゃめちゃ勉強になりました。 これからも細かい理解にこだわって意識高い系のプログラマ目指します いやいやメソッド呼び出しじゃなくて、関数ポインタを渡すようなものだから()が付かないほうが自然だろ
、とC言語時代を懐かしむ意識低い系のおっさんグラマ >>715
わたしは意識が高いのです。
そんな低レベルな内容のことを話されても困ります。 >>716
その一言でもうね、低レベルな質問したの誰だよ? 「低レベル」と『低レベル』をかけた高度なギャグのつもりだよ☆ ()なんて飾りです、偉い人にはそれがわからんのです! IT掲示板群 ttp://x0000.net/forum.aspx?id=15
学術の巨大掲示板群 - アルファ・ラボ ttp://x0000.net
数学 物理学 化学 生物学 天文学 地理地学
IT 電子 工学 言語学 国語 方言 など
simulationライブラリで純粋な関数式プログラミングをする
ttp://x0000.net/topic.aspx?id=3631-0
UIライブラリ (C#, 2D) を作ったよ
ttp://x0000.net/topic.aspx?id=3688-0
連続と離散を統一した!
ttp://x0000.net/topic.aspx?id=3709-0
4Dエンジン(画像有り)
ttp://x0000.net/topic.aspx?id=3677-0
matrixのライブラリ
ttp://x0000.net/topic.aspx?id=3711-0
ある強力なFor関数
ttp://x0000.net/topic.aspx?id=3630-0
SQLライブラリ
ttp://x0000.net/topic.aspx?id=3675-0
PS malloc / free を実装してみた (C#)
ttp://up.x0000.net/files/TMallocTest.zip スマホ本体のメモリ?キャッシュ?をアプリ内でクリアする方法ってありますか?
位置座標(x,y)をMutableListで管理して50点ほど動かし続けてそこに小さな画像を表示させています
Listname.set(番,数値)で同じ場所に上書きしてます
弾幕シューティングでも作ろうかと簡単なテストしてたのですが
これを実機でテストすると数分でフリーズしてしまいます
メッセージが出てアプリが落ちるわけでもありません
エラーの確認方法もわからず本体のメモリ?と疑ってる状況です Bitmapオブジェクトを描画ループの度に生成してるとかそういうオチじゃないの android bitmap recycle でググれ UnityとXamarinって競合しますか?
どっちかで描いて有ればもう片方でも動きますか? WebViewでimgurの埋め込み窓を表示するにはjavascriptをtrueにするだけじゃ足らんのか
webChromeClientの方で何か設定するんだろうか Androidの中間コードっていうんかな
壁紙とかsurfaseみたいなやつ、複数継承ってどうやったらできるんだろうか?
あと、Unityで作ったmanifestって他で弄ったら、Unityで保存するとき上書きされない?? 723です
弾を壁反射で減速させてたので0に収束してアンダーフローしてた?みたいです
そこは解決したんだけど
viewで弾を80以上表示すると画面がカクカク
surfaceviewに変更してみたんだけど
surfaceviewにすると弾1個でもカクカク
Unityしかないのかな?
極力ネイティブで作ってみたいので 書き忘れてましたが実機テストの場合です
エミュでは500個くらいで遅くなり始めるかな?ってとこです
surfaceviewを調べるとAndroidのバージョンによってはviewより遅くなるらしく、それかな?と
ちなみにAndroid5.0.2
viewに戻すと実機でも50個ていどはサクサクです gc走ってるんじゃないの?
描画処理でオブジェクト生成してたりArrayListに玉ぶっこんでたりするとか Listで位置と速度の管理はしてるけど、んー
5年ほど前の機種だから古すぎるのかな、、、w Listで「初期サイズを指定」してさえいれば
メモリ使用量は確か配列と同じになるんじゃなかったかな
指定しないと遅いうえ、gc発動しまくってカクカクにはなりそう
配列管理がいいよ Android5.0.2だとGL描画してくれるけど本体設定で有効にする必要があるかも
うちのは4.n.nだけど開発者設定の所にあるね ありがと
mapに変更検討してみます
mutbleListが楽だから全部それにしてるので見直し必要かもw GLは資料はあるけど触ったことないから食わず嫌いしてる
開発設定のGPUレンダにチェックしてもあまり変わらずでした
とりあえずできるできないだけ確認してUnityに移行しようかなと
弾幕ゲー普通にできるし、、、凹むw 弾1個でカクカクしてて原因究明も出来ずとりあえず環境移動する"向いてない人"だな C++とOpenGLでスプライトバッチ作れば弾1万個出してもよゆうだよ! すみません、kotlinスレにも投下してしまいましたがこちらで質問する方が正しかったと思うのでこちらでも質問します
現在Android Studioでkotlinを使用しAndroidアプリを作っています
アプリのアップデートがある場合、アプリ起動時にその旨を通知する仕組みを実装したいのですが下記記事の方法で可能でしょうか?
まだリリースはしてないため動作確認ができないので教えてほしいです
また、この機能の動作確認をするには製品版もしくはベータ版でオープン状態でストアに公開しないとダメですか?
アルファ版と内部テスト版は公開ストアからのダウンロードではなくダウンロード用URLからアプリを端末に落とす仕組みのようなので、、。
https://developer.android.com/guide/app-bundle/in-app-updates?hl=ja あっちで回答するのが正しいと思いましたので
あっちに回答しておきました よくわからんけFirebase実装しちゃえばいいんじゃないの >>747
Android5以前はアップデートの検知はどのようにしていたのでしょうか?
実装したいもののイメージとしては、起動毎にストアに新しいAPKもしくはAABが上がっているか判定してある場合はアップデートを促すダイアログを出し、Yes選択でストアのアプリページに飛ばすと言うものを実装したいです 作者が気にしなくてもストアに上げれば勝手にやってくれんとちゃうの? >>748
(アプリ内アップデートを使わない)Androidアプリの通常のアプリの更新の
仕組み・方法を理解しているかい?
まず、AndroidStudioの導入から簡単なアプリの作成、PlayConsoleの使い方
まで広く浅く分かり易く書かれている入門書を読んで、開発全体を把握したほうが
良いよ。 >>748
あと、余計なお世話かもしれないが、
>起動毎にストアに新しいAPKもしくはAABが上がっているか判定してある場合はアップデートを促すダイアログを出し
他のアプリでこれを行っているのを見た事あるかい?
普通のアプリでこれをやったら、ユーザーにウザがられるだけだと思うよ。 APIを自前で用意してアプリ起動時にチェックして
ダイアログだしてストア遷移とかかなあ APIどころかFirebaseのrealtimedatabaseにバージョン番号記録しておいてアプリ起動時にチェックでも良いかも
むしろgithubでpublicなリポジトリ作ってそこにバージョン番号のテキスト置いとくくらいでもいいかもしらん >>750
普通はどう言う仕組みなのですか?
普段遣いの携帯はiPhoneなので理解できてないです
>>751
AndroidアプリはわかりませんがiPhoneアプリではアップデートがあったらそれを伝えてストアに飛ばすダイアログを出すアプリは何個も見たことがあるのでAndroidでもそれが可能と思ってます それこそiOSがどんなふうに実装しているのかよく知らないけど、Androidは特別に
アップデートを検知する仕組みを入れなくても、GooglePlayに登録されている
アプリで端末がインターネットに接続されていれば、GooglePlay開発者サービスに
Push通知みたいな形でアプリの更新が認識されて、自動更新がユーザに禁止
されていれば通知を出すだけ、自動更新可能ならば勝手に更新するって仕組みで
大体のアプリは動いていると思ったけど >>755
今やってるアプリだとこんな感じで出ますね
明らかに自前で用意している画面なのでアップデート検知はアプリ側で実装するのが普通だと思ってました
https://i.imgur.com/D2e3Nsq.jpg >>756
すごい古いライブラリにUpdateCheckerってのがあったぞ
ちゃんと読んでないから動くかどうか知らんけど
https://github.com/pietrorampini/UpdateChecker 外部ライブラリってライセンス周りめんどくさいのあるからあんまり使用したくないわ MITみたいなソース内に記述すりゃいいのはまだいいけどわざわざシステム内のページにこのライブラリ使用してるぜって記載させるのとかは流石にだるすぎ ライセンスはLicensesDialogで解決してる 仕事だと要件にないこと勝手やっちゃいけないこともあるからまあ使わないのが無難 SIerみたいなゴミで働いてるからそうなるんだろクズ ああ、あの
スイスイスーダラタッタ スラスラスイスイスイー
ってやつ? リリース後のアプリについて、
ユーザーがどのページを見ているか、各ページを何回起動したか等の追跡・監視が行える方法って何かありますか? new Thread(new Runnable() {
@Override
public void run() {
動作A
}
}).start();
動作B
で、動作Aが完了するまで動作Bを実行するのを待機させる方法はありますか? >>771
基本としてUIスレッドは停めてはいけないので、「待機させる」という考えはダメ
ThreadではなくAsyncTaskを使って、onPostExecute()で動作B
このスレってまとまなレスつかないね
実際にプログラム出来る人は殆ど見てないんだろうなあ >>774
AsyncTaskがDeprecatedとなったの聞いたのでThreadを使っていたのですが…
他に実装する方法はありませんか? This class was deprecated in API level 30.
Use the standard java.util.concurrent or Kotlin concurrency utilities instead. >>776
ありがとうございます!
FutureってのとExecutorsってのを組み合わせればできそうです! >>777
ほんとにそれで出来そう?
Androidの場合、動作Bをメインスレッドの Looper の Handler への post で実行しなければいけないと思うんだけど、
java の標準機能だけだとダメそうな気がする
まあダメだったら Thread looper handler あたりでググってみればいい
でもGoogleのこれからのおすすめは、Kotlin で LifecycleScope.launch() だ スレッドやコルーチン周りは
正直何使ったらいいかわからん >>779
ありがとうございます!
調べてみます!
正直私にはGoogleの頭の中がわかりません…
なんでASyncTaskをDeprecatedにしたのか
これ以外にもDeprecatedにした意味が分からない物が沢山あります 別にAsyncTaskでいいだろ
潔癖ならしょうがないけど
kotlinならコルーチンだが 実際に非推奨をそのままにしとくとどうなるの?
もう更新されずにそのままなアプリはいっぱいあると思うけど そのうちストアからバンされる。
俺のアプリもすでに3つほどバンされたわw >>783
開発時の推奨APIレベルが上がっていって、実機も最低動作のAPIレベルが上がっていっていずれそのままなアプリは動かなくなる あまりにセキュリティ上ヤバいものは早くに廃止されるかもしれないが
そうでもなければかなり長いスパンで残るから「非推奨」てのはこれからの
新規プログラムではやめましょう、ぐらいの意味でそこまで気にしなくていい
そのタイムスパンよりたぶんアプリの寿命のほうが短かい
ただし林檎先生の場合は無慈悲にバッサバッサ切ってくることあるから注意 >>781
例えば、安易にAsyncTaskを使うと例外やメモリリークを導くようなコードを書いて
しまうことがある。でその対策として
こういうのは駄目、こういう運用してね、バグの原因はこう、ってのを詳しくドキュメント
して、ユーザーに周知させる? -> うーんなんかめんどくさい。それに本来AyncTaskが
目指してたのと少し違う感じが。かといって放置すると上記のようなバグがこれからも。
-> だったらもうAsyncTaskいらなくね? の流れ
と妄想してみた しかし非推奨なんて無数にあるよね、gさんも困ったもんだ 例えばなんだけど
forで千回処理する場合
1〜500と、501〜1000をスレッド分けて処理させると速くなる?
100毎にスレッド分けて処理させたら更に高速化する? >>791
少なくとも論理コア数以上に分割しても速くはならない Android Frameworkは当初から細かいところに考慮漏れが多い。
元々スマホ用じゃないものを買い取って無理やり使ってる感がアリアリだよ。
非同期処理を舐めてる。 自アプリをアイコン表示(小さい画面)にして、画面の手前に表示しながら、他のアプリも操作できるようなものを作りたいんですけど、適切なワードがわからなくて検索しても見つからないです。
なんて検索すれば出てきますか? ア〜〜 Android11メンドクセ〜〜
obbファイルを使ってるアプリがあるんだが、Playストアからのインストール
と違ってASのデバッガ等からインストールする場合はobbがインストールされない。
これまでAndroid10まではadbやファイラーでobbファイルを予めコピーしておいて
デバッグ作業してたんだが、Android11ではadbもファイラーもOBBディレクトリ
にアクセスできない・・・
どうすりゃいいんだ? エミュ?
デバッグビルドのアプリをインストールして、adb shell で入って run-as アプリのパッケージ名とかしてもダメかね? >>799
linuxの知識に乏しいため、間違ったことをしている・書いている点がありましたらご容赦。 >>799
linuxの知識に乏しいため、間違ったことをしている・書いている点がありましたらご容赦。
まずAndroid10とAndroid11のAVDを起動、それぞれ adb shell を起動し、
ls ―al /sdcard/
ls ―al /sdcard/Android/
を実行し、内部共有ストレージがここにマウントされていることを確認。
ちなみに、Androidディレクトリや他のディレクトリもファイルモード・所有者・グループが、Android10とAndroid11ではかなり違うようです。
次に
run-as {アプリケーションID} ls -al /sdcard/Android/obb/{アプリケーションID}
を実行すると、Android10は問題なくファイル一覧を取得できましたが、Android10では「Permission denied」となり(他も色々試行錯誤しましたが)ここでギブアップ。
しかし>>799が大きなヒントになりました。
「ファイラーやadbでコピーできなくてもアプリ自身ならコピーできるじゃん」ということで、
if ( デバッグビルド && obbに目的のファイルが無い && Downloadに目的のファイルがある ) {
Downloadのファイルをobbにコピーする ;
}
という処理をアプリの最初に追加し、無事、デバッグできるようになりました。
レスありがとうございました。 失礼。
>>801の文は普通に書くとどれかがNGワードになるようなんで、ところどころ英字等を全角にしてる。
>>800は上記試行錯誤中のミス投稿 確か、ls の、-l とかが、サーバーではじかれる こんな記事発見
GoogleがChromebookでのAndroidアプリ開発や最適化をサポートするウェブサイト「ChromeOS.dev」を公開 - GIGAZINE
https://gigazine.net/news/20200813-building-android-app-chrome-os-easier/ androidに最初から入っているGoogle製時計アプリがあっていつも目覚ましに利用しています。
時間をセットしてスマホの画面をオフにした状態で、
時間になると時計アプリが表示されるんですが、
この、画面がオフの状態からアプリを表示するのはどうやってるんでしょうか? AlarmManager, BroadcastReceiver, PowerManager かなあ アラーム系アプリって最終的にはめちゃくちゃ泥臭いコードになってそう OSバージョンで分岐入るからなあ
最新版だけ対応なら楽なんだろうけど Google Play デベロッパー様
2020 年 11 月 2 日以降に Google Play で配信しているアプリおよびゲームを更新する場合、
Android 10(API レベル 29)以上をターゲットとすることが必須となりますので改めてご連絡いたします。
〜略〜
重要: 対応が必要です
というメールが届いたのですが、具体的には何をしたら良いのでしょうか? ひでーこといやがる
俺様のAndroid5を永久に保護しろ 趣味で公開してるアプリは対応面倒になって萎えてやめてしまう 10以上をターゲットにする?
9以下は切り捨てるんけ?
10以上もターゲットにするではなく? 毎年言われることだぞ。
targetSDKverを29にしてビルドしろ。動かないところはは対応しろ。
minSDKverは好きにすれば良いので旧機種サポートしたい人は頑張れ。 これ対応しないとインスコするときに古いアプリですとかダイアログでるやつだよね
手入れしてないアプリと思われると課金してくれなくなるよな
毎年こうなるなら今後は年1回はアプデしろってことか。。 少し前にAndroid11対応のために情報を色々集めていた時、
XX年XX月以降のリリースはApp-BundleでのみになりAPKでは出来なくなる、
っていうのをどっかで見たんだが、今探しても見つからない。
だれかこの期限(の情報のありか)を知ってたら教えて。 匿名で会話ができるアプリがありますけど
会員登録もしてないのに自分宛てのメッセージをアプリ内で読めたり
メッセージが来たらプッシュ通知でお知らせしてくれたりするんですが
会員情報もないのにどういう仕組みで個人を特定しているのでしょうか? アプリ起動時にUUIDという重複しないIDを発行している
メールアドレスなどに紐付けていないので
アプリを再インストールなどすると復活できない
UUIDに加えて現在のunix時間も付けておくとより重複が発生しにくくなる >>819
レス、ありがとうございます。
>リリース画面のエラー表示の部分は
「おっ、それだ」と思ったのですが、違っていました。
ttps://i.imgur.com/GUPewji.png
このメッセージ下の「Android App Bundle」のリンク先も一通り廻って見まし
たが見つかりませんでした。 >>820
中身は>>821のUUIDそのものだが、Androidに組み込まれている物として
Advertising-IDというのがある。
https://developer.android.com/training/articles/ad-id?hl=ja
これなら、アプリをアンインストールしても消えない。(ユーザーがリセット
することはできるらしい)
アプリ内購入にプロモーションコードというのが有るのを知らなかったころ、
Advertising-IDを使ってプロモーションコード的な事(無償提供するユーザー
の匿名管理)をやろうとして少し調べたことがるが、結局使わなかった。 それ機種によって全部同じになってることがあるとかないとか、、 ndkの中で、システムのプロパティを取得してその値でコードの挙動を変えたいのですが。
ググって__system_property_get を見つけましたが、いかにも隠してある関数で危険?
シンボルの有無を確認してから呼ぶ、的なことをした方がいいですかね?
それとも、これより良い方法ってありますかね? >>828
そのヘッダに全部書いてあるじゃん
827 のドキュメントが更新されてんだろうから探せよ 趣味でAOSPのコードをビルドしようと思ったのですが、repo sync でチェックアウトしてみると
ものすごく大きくて驚きました。
中でも .repo というディレクトリーが全体のサイズの半分近くを占めていて、実際には git の
レポジトリ情報などを保持しているようですが、これってサイズを圧縮したりすることって
できますかね?
ちなみにビルドするだけなら .repo は消して構わないのかな? それともビルドが通らなくなる?.
いずれにせよ一応保持しておきたい(コードの履歴などをみたい)のですが。 >>832
なるほど、と思い repo forall -c git gc を走らせました。結果: 変化なし
ちなみに上のコマンドは各プロジェクトに相当する .git のあるフォルダを巡回したはず。
一方 >>831 に書きましたが、でかいのはトップにある .repo フォルダで、この下を覗くと
プロジェクト名.git みたいなフォルダが大量にあって、こいつらがでかいです。 .gitはリポジトリのコピー。ビルドだけなら要らんがそれが無いと履歴が見れない。あきらめれ。 2022年頃から最新のARM純正コアは64bitのみになるらしい
32bitコードは実行できなくなる
Arm、モバイルCPUの最新ロードマップを公開。2022年以降のビッグコアは64bit専用に
https://pc.watch.impress.co.jp/docs/news/1281684.html 64bit、デバッガーでのアドレス表示が長くて邪魔くさい。
自分だけかなw
実際上の方の桁はほとんど使ってないわけだし、大量の0を見せられるのは。
カーネルの中の人とかは特殊なアドレス空間を見てたりするんだっけ? アプリケーションIDって重複しないidであれば好きなのつけて登録することは出来るんでしょうか?
com.google.hogeとか >>837
ストアに登録するとき登録済みのIDでないことが必須
衝突を避けるために取得済みドメイン名で始めるのが一般的
適当につけるなら com.〜 とかトップドメイン名で始めるのはお互い迷惑だから、避けたほうがいい >>838
ありがとうございます。ドメイン所有者じゃないと登録できないのかと思ってました。 >>839
ありがとうございます。常識的につけないほうが良さげですね。 広告つけるなら今はapp-ads.txtの関係でドメイン取ってidつけた方がいいな
ドメイン名を実名でもなんでも好きなのにすればいい 日曜日は東京ディズニーランドに行くって意味かと思った >>836
本当は64BITアプリ自体が実は多くのケースで32BITよりほとんど良くなら無いのに
プログラムがしにくくなったりむしろメモリー効率が下がってしまう事が多い。 アドレス空間には代えられないからな。
Linux界隈がメモリ効率なんか気にするわけもなし。 質問です
FCMでメッセージ受けた後通知を出して、それをタップしたらアプリに来るようにしてるんですが、
すでにアプリが起動してる場合にログイン前と後で動きを変えたい
(ログイン前ならログイン画面→ログイン成功時に本来やりたかったこと、ログイン後ならすぐにやりたかったこと)
って風にしたいんですが可能ですか?
pending intentってのには通知作るときしかactivity指定できなくて、
その時のアプリの状態によってこっちの画面にしたいってできなさそうですが… その書き方だと既についてる回答自体の意味がわからないのか
ついてる回答の意味は理解できて試したがダメだったから他の方法探してるのかわからない お知恵拝借させてください。
単純なテキストをandroidの共有メニューから引数を渡せる、http_shortcusというアプリのアクティビティ(send to)へ引数を渡したく、
intent://#Intent;scheme=content;component=ch.rmy.android.http_shortcuts/.activities.misc.ShareActivity;end
とすると、共有で起動するアクティビティは起動するのですが、引数の渡し方がわからず。。
渡したい内容はテキストで、intentビューワーで見ると
key: [android.intent.extra.TEXT]
class: [class java.lang.String]
value: [あいうえお]
という感じです。 質問です
既存のゲームとかで、他のアプリから戻ってきたときに
activityが破棄されてると最初の画面から始まるようになってるのが多いですが、
あれってどうやって作ってるんですか?
設定でメモリから消された?的なときにスプラッシュから始めるみたいなのってあるんですかね?
それとも各activityのoncreateでsavedInstanceチェックして、
中身があれば再生成扱いでスプラッシュをスタートさせてる? アクティビティ殺されるときに通知が届くのでは無かったか? >>854
たしかに一つならそれが死んだら全部死んだと同じだから最初からってのもやりやすそうですね
>>855
ondestroyが呼ばれるとは思うけど、
これは別のactivityスタートするときに昔の消したりするときにも呼ばれるので、
メモリから殺されたときには無理かなと思いました Flutterは一つのActivityに何もかも描画するが
ゲームってたいていそういうつくりになってるかと思った 手元にUbuntuの環境がいくつかあって(バージョン、リアルor仮想等違いがある)、それぞれに
Android Studioを入れて、実機をつなげてアプリのデバッグを試してみたんですが、
すぐにデバッガーがアプリにつながるのと、waiting for debugger to settle... みたいなのが延々と
続いて結局デバッグできない、という差が環境によって生じています。
これって何が違うんですかね。Ubuntuの設定等によってはデバッグのポートがブロックされてたり
とかするんでしょうか。Android Studioのバージョンとデバッグに使った実機は共通です。
今の所Ubuntuバージョンと実機or仮想で、デバッグできる/できないの規則性は見えません。 うーん、ちょっと後出しですが、泥の実機とケーブルは共通。
そして同じPCでも実Ubuntuでは駄目だが仮想Ubuntuではいけたりもしたり。.
あるいはMac上のAndroid Studioでは駄目だがMacで仮想Ubuntuを動かしたその上のAndroid
Studioでは大丈夫だったり、でも別の仮想Ubuntuでは駄目だったり。
あとAndroid Studioではどの環境でも実機が認識されているのでそのレベルの接続は出来て
いるようです。
という漢字なんですが... ここのサイトの1番上にある
https://discourse.android-ide.com/t/aide-androidx-template/322
https://drive.google.com/file/d/1-n4PuT_BpR8dpp7PHFNsEgixN3xJVXo7/view
これをビルドすると以下のようなエラーが起こります
values-v28.xml
aapt: No resource found that matches the given
name (at 'dialogCornerRadius' with value
"?android:attr/dialogCornerRadius).
app
aapt: Failed to generate resource table for split"
values.xml
M
aapt: Attribute "closelcon' has already been defined
aapt: Attribute "icon" has already been defined
aapt: Attribute "iconTint" has already been defined
"closelcon"と"icon"と"iconTint"の部分は
build.gradleのライブラリがぶつかっているためだと言うことは分かったのですが、どの部分をコメントアウトすれば良いのかが全く分かりません
よろしくお願いします Android10以上でアプリがアンインストールされても外部ファイルに文字列を保存するにはどうしたらいいですか >>865
出所不明のファイルを残すのは迷惑なんで、
/Documents/アプリ名.txt
とかに保存するのがいいんじゃないかな?
これに関連して聞きたいんだが、
「初回インストールからxx日間は無料で全機能試用できます」みたいなアプリ
があるけど、再インストールで制限するには、インストールしたことがある
という情報を何処かに残しとかなきゃならないと思うが、どうやってるんだろ?
ファイルで残しても、それがばれて晒されたらダメだし・・・ Playからの導入なら、アカウントごとに導入したアプリ全部管理されているから
そこで分かるんでないの >>867
その情報を取得する方法をご存知でしたら、お教えください。 レイアウトで作ったボタンってkotlinではIDそのまま変数として書けてたよね
なんか書けないんだけど仕様変わった?
レイアウトのコードでアクティビティとの連携は確認してます glslでsamplerExternalOESって関数に引数として渡せんの?
まぁ別に渡す必要もないんだけど。よくわからん
uniform samplerExternalOES t;
void func(samplerExternalOES t) { <-err sampler2Dならおk
} 自分が出来ると心から信じることができれば必ずやれる uniform変数を引数にするという発想がそもそも無いから誰も試してないだろうな 音声検索を
startActivity(Intent(Intent.ACTION_VOICE_COMMAND).setFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
で行っていたのですが、Android10になってからスマホがスタンバイ状態の時に起動できなくなりました。
何か対策はあるでしょうか?教えてください。 スタンバイ状態のときにアシスタントがオフラインモードになっているとかではないの? >>876
よく調べたらスタンバイ状態だけでなく他のアプリ起動中もだめで、
自分のアプリがフォアグラウンドでないとダメでした。
スタンバイ中は関係なさそうです。
android10より前は使えたのですが。
もう少し調べます。 >>877
自己解決しました。
「他のアプリの上に重ねて表示」の権限を自分のアプリに設定したところ、アシスタントが表示されるようになりました。
それにしても、長いこと悩んでいたのですが、書き込んだら自分で解決できるのが不思議。 開発環境 : Androidstudio
使用言語 ; JAVA
仮想デバイス ; Pixel 2 API 26
通知音を無音にしたいのですが、どの様に書いたら良いですか?
現在の状況は以下に、NotificationChannel notificationChannel = new NotificationChannel(chID, chID, NotificationManager.IMPORTANCE_LOW);
で無音化出来てません。 //通知チャンネルIDを生成してインスタンス化
//NotificationChannel notificationChannel = new NotificationChannel(chID, chID, NotificationManager.IMPORTANCE_DEFAULT);
NotificationChannel notificationChannel = new NotificationChannel(chID, chID, NotificationManager.IMPORTANCE_LOW);
//NotificationChannel notificationChannel = new NotificationChannel(chID, chID, NotificationManager.IMPORTANCE_MIN);
//通知の説明のセット
notificationChannel.setDescription(chID);
//通知チャンネルの作成
notificationManager.createNotificationChannel(notificationChannel);
//通知の生成と設定とビルド
notification = new Notification.Builder(MainActivity.this, chID)
//.setContentTitle(getString(R.string.app_name)) //通知タイトル
.setContentTitle(pageNum + "/" + lastPageNum)
.setContentText(notificationText) //通知内容
//.setSmallIcon(R.drawable.icon) //通知用アイコン
//.setSmallIcon(android.R.drawable.ic_lock_idle_alarm)
.setSmallIcon(R.drawable.ic_stat_name)
.setProgress(PROGRESS_MAX, PROGRESS_CURRENT, false) //進捗用の通知
//.setSound(null, null) //通知音
//.setDefaults(0) //通知音
.build(); //通知のビルド 長文になったので、二つの投稿に分けました
通知内容は、複数のファイルをダウンロードしている間、進捗状況を出すだけで
音が鳴らなくて良いのですが、どーにかなりませんかね? 無音にできないというよりは通知チャネルに登録できてないだけではないか >>883 >>884
アプリの再インストールの方法は今調べています。
参考URL;https://dev.classmethod.jp/articles/change-android-notification-sound/
>チャンネルIDが同じであるため、アプリを一度アンイストールしておきます。アンイストールしたくない場合は、チャンネルIDを変更すればOKです。
という記述を見つけたので、チャンネルIDを変えたら、音が鳴らなくなりました。
多分、アプリの再インストールで直る気がします。 追記
アプリの再インストール(正確には、仮想デバイス上でのアンインストールを行った)後、音が鳴らなくなりました。
ご回答ありがとうございました。orz 俺もちょうど1週間ぐらい前にやったとこだったからな
つか、君ひょっとしてダウンロードとかいうから他のスレでアプリどこで公開したらいいか質問したあのアプリ作ってる人か? 未キャッチ例外ハンドラ
Thread.setDefaultUncaughtExceptionHandler(・・・)
のスコープってどういう単位なのでしょう?
Serviceとか起動させる場合にはService内でも
Thread.setDefaultUncaughtExceptionHandler
を指定する必要ありますか? サービスを作成したときにハンドラが書き込まれているスレッドグループを指定する必要がある >>887
そうです。
今はレジューム用の仕組みを作っている所ですね。
対象のサイトの評判が悪いのは知っていますが、
例えばそのサイトを利用し、収益を得て、それをうまく分配出来れば、
それも一つの手ではないかと思っています。
(前提として、自分用、勉強用ではあるんですけどね。)
もし、私の考えを理解して貰えるなら、協力をお願いしたいです。
その他の質問として、通知用アイコンが変更出来ない場合ってどんな原因が考えられますか? 通知チャンネルとか通知アイコンは簡単には変更できないようになっている
リファレンスを熟読して解決するしかない ファイルを選び、読み込む仕組みを作っています。
読み込む為の仕組みとして、以下のサイトを参考に作ってみました。
https://www.hiramine.com/programming/android/fileselectiondialog.html
上記サイトのメインアクティビティクラスの実装(MainActivityクラスの実装)に書かれている
// メンバー変数
private String m_strInitialDir = Environment.getExternalStorageDirectory().getPath(); // 初期フォルダ
この初期ファルダを、アプリ用の内部ストレージに変えたいのですが、どうしたらいいか教えて貰えませんか?
以下の様に書き換えると起動しなくなります。
private String m_strInitialDir = getFilesDir().getAbsolutePath();
よろしくお願いします。 あと、これは出来ればで良いのですが、
オプションメニューからファイルを選択するのではなく、アプリに用意したボタンからファイル選択をする方法
教えて頂けると幸いです。
>>891
Androidstudioで用意されている、デフォルトのアイコンを使った場合、変更されました。
多分、私が作った通知用アイコンが、Androidの基準を満たしていないのだと思います。 ブレークポイント仕掛けるとかどんな例外で落ちてるかまずは把握 Buttonビューを用意して、onClickハンドラにファイル選択のコードを移せばいいでしょ というかその前にユーザーにファイル選択させたいなら>>893の方法は古くて、
https://developer.android.com/about/versions/11/privacy/storage
とかscoped storageとか色々自分の要件にあったものを.. >>895
private String m_strInitialDir = getFilesDir().getAbsolutePath();
を使った場合、以下のエラーがでます。
java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.test/com.example.test.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'java.io.File android.content.Context.getFilesDir()' on a null object reference
値がnullになってるのが悪いと見ているのですが、何故
private String m_strInitialDir = Environment.getExternalStorageDirectory().getPath(); では値を取得できて、
private String m_strInitialDir = getFilesDir().getAbsolutePath(); ではnullになるのかが、分からないのです。
>>896
その方向で作ってはいますが、なにぶん初心者な物で手間取っています。
>>897 898
古いのは理解しています。
私が持っている機体がAndroid8なので、まずは8(API29未満)で動いてくれる物を作り、
その後、Android10(API29)以上に対応させたいと考えています。
もし、Android8 or10で行う場合、参考サイトの記述を、どの様に改変すればいいでしょうか?
自分でも調べているのですが、なかなかうまく行かず…
よろしくお願いします。 orz >>899
まぁ、nullポインタだろとは思ったけど、なんでnullになるんだろうね
たぶん、初期化のタイミングだな
getFilesDirをそこではなく、ActivityのonCreateメソッドに移動したらどうなる?
setContentView( R.layout.activity_main );
のあるところに つか、飛びすぎじゃねぇか?
俺が勉強したときはButton1つ配置してボタンクリックしたらメッセージ表示してみるとか基本的なことから入ったけどなぜこんな複雑なサンプルをいきなり
レイアウトは基本xmlファイルに書く
activity_main.xmlってファイルがresフォルダのどっかにあるからそこにボタンなら<Button >みたいな要素つくる >>900
参考サイトの作りが、public class MainActivity 直下に作る様なので、それに合わせていたのですが…
onCreateの直下に
String m_strInitialDir = getFilesDir().getAbsolutePath();
を作ったら
/data/user/0/com.example.test/files
を取得出来ました
これを、FileSelectionDialogにうまく渡さないといけないのですよね >>901
欲しい物を作る
自分が欲しいから、調べたり勉強したりで、進めるんじゃないかなぁと思ってる。
自分で使う分には問題ないんだけど、公開するなら、もっと良い物にした上で公開したい。
一応、プログラムの基本は理解してる(応用情報技術者資格は持ってる)
但し、JAVAは初心者!
よろしくお願いします orz >>902
URLを参考に、作った所、成功しました。
ただ、突貫で作った為、細かい部分で想定外の動きをするかも知れません。
その時はまた、相談させてください。 viewPagerの中身fragment入れざるをえんじゃん GridLayoutの子要素を追加する位置って変更できますか?
左上からではなく右下から追加したいのですが アプリのテスターを募集したいと思っているのですが、どこで募集すればいいでしょうか? もう一つ質問です。
onClick 後の処理で、入力されたデータが希望の物に一致しなかった場合、
処理を中止する(onClickを抜ける)コマンドはどのように書けばいいですか? 友人知人に頼む
SNSで募集
クラウドソーシング等で有料で募集
if文にして条件に合わなければ処理しないようにすればいいよ >>912 >>913
ありがとうございます。試してみます >>912 >>913
return; でいけそうです。ありがとうございます。
>>913
友人、知人にAndroidを使っている人が少なく、また使っている人もアプリ開発に詳しい方ではないので、頼む事が出来そうにありません
SNSはこれまで利用して来なかったので、繋がりが全くありません
クラウドソーシングを確認した所、費用が月10万+かかる様で、小規模な開発を目指している私の予算に合いません
ここで募集するといった事はどうでしょうか?(5chは一種のSNSの様な物と考えてます) ベータ版でストアに公開でもいいと思うよ
ベータ版でも製品版でも最初は誰もDLしてくれないから。。。 >>915
考えて実行しないよりまず公開をめざそうぜ!オープンβでもストア公開でもいいから。
スレ住民がいくら優しくても、モノも構想も出せない状態では募集もなにもそんなお人好しはいないからね。 内部テストというのをやってみましたが、これで良いのかよく分かっていません。
e-hentaiに特化したダウンローダー:
https://play.google.com/apps/internaltest/4700364722824014155
機能は、ehgm.plと言う物の下位互換です。
URL はダウンロード対象のIndexページのアドレスのみ対応してます
(https://e-hentai.org/g/xxxxxx/xxxxxxxxxx/)
対象としているサイトが、あまり行儀の良く無いサイトである事は承知していますが、
協力頂けるのであれば、意見を受け賜れると幸いです。
よろしくお願いします。 テスターにメールアドレス追加しないと駄目だろ
deploygateの方が良いんじゃない
2次元バーコード読み取るだけでインストールできる これだとメアドをどうにかして収集して追加するところからだから、オープンβにするかdeploygateがいいね deploygate 使い方まだよく分かっていませんが、上げてみました
https://dply.me/4rrsaa
これでいいんでしょうか? >>922
無報酬でテストして貰うのだから、別の形でテスターの方にメリットを提供出来れば良いなと考えてます。
どんなメリットがあればテストしてくれます? >>924
話の流れで、この様な形になっています。
>依頼は他所でやれ
どこでやればいいですか? ランチャーアプリ作ってるんですが、ブラウザからウェブページのショートカットがホーム画面に追加された時の情報ってブロードキャストでキャッチできますか?
レシーバーにACTION_CREATE_SHORTCUTとか追加しても情報が飛んでこないので。分かる方教えてもらえるとありがたいです! EhViewer というアプリを参考に、あらたなアプリを作ってるんだけど
(EhViewerの配布元:https://github.com/seven332/EhViewer/releases)
こいつがどうやって、サーチ&表示してるのか分からない。
誰か分からん?
なんとなく、自前のDB作ってそこを使ってやってそうっぽい? ソースコード公開してるんだから自分で確認すりゃいいでしょ それが出来ればいいんだけど…
余力ある人に教えて欲しい Sony系のエミュレーターって今じゃ手に入らないんですか?
また、Sony系のスマホでフォルダ作成を行った場合エラーが出る様なのですが、
原因や解決方法分かる方いませんか? >>931
自分が作成・公開してるアプリで、Google Play Console の Android Vitalsの
「障害およびANR」を見ると、月に1〜2件の頻度でANRが報告されているのだが、
その殆ど(多分9割以上)がXperia(機種は色々)で、そのmainスレッドの一番上
には大抵ストレージアクセス系のnative関数になってる。
Xperiaは低品質のストレージ使ってるか、Sony独自のコードに何かバグがある
のかねえ? IT後進国の企業が作ってる糞コードなんか糞に決まってるだろ >>931
あと、Xperia での話ではないが、初回起動などでContext#getFilesDir()で
フォルダが新規に自動作成される時、作成直後はフォルダ内への書き込みに失敗
する場合があるようなので、書けるかテスト・ダメならちょっとSleepしてリト
ライするようにしてる。 MVVMって基本的にActivity一つに対して対応するViewModelを一つ作るんだと思うんですけど
RecyclerViewのadapterの中で使うレイアウトファイルにセットするViewModelは
それ専用のを作るのかActivityに対応するViewModelをセットするのか
どうしたらいいんですか 俺はそのまんま表示するものに対しておとしこんでる
Activityに対してActivityのViewModelがあって、このActivityがItemの一覧をRecyclerViewなりで表示するなら
ItemのViewModelのListをActivityのViewModelが持つ class ActivityViewModel {
List<ItemViewModel> itemViewModels
}
こんなイメージ なるほどviewmodelで親子関係を持つんですね
その場合に、子のviewmodelから親のviewmodelへアクセスしたいとかその逆みたいなことってありませんか
callback とか livedata の observe とか駆使して
子の viewmodel -> adapter -> activity -> 親の viewmodel
とか経由しないといけないと思うんですけど
その辺の煩わしさを感じて結局viewmodelは一つがいいんじゃないかとか
思ってしまうんですけどどうなんでしょうか 子の viewmodel から 別の子の viewmodel とかもアクセスし辛いじゃないすか androidではその場合は親のViewModelも一緒にRecyclerViewに渡してる
本当は子が親の参照持つべきなのかもしれんが、そうすると子が他で使いまわしづらくなるので DataBinding使ってるか知らんが、androidのDataBindingは変数いくつでも宣言できるからこれでいってる
xamlとかWPFとかでのMVVMだと、DataContextって言って変数が一つしか割り当てれないから、めんどくさいんだけどね 俺はMVVMギチギチにやるなら、親の参照を持った専用のItemのViewModel作るけど、そんな完璧にやってもめんどくさくなったりするからそこら辺は自分の適当なさじ加減で 例えば、Twitterアプリ考えて、たいてい一覧画面と詳細画面あるけど、
Tweetを表すTweetViewModelはまとめて両方で使えるように
で一覧画面の
TweetsViewModel {
}
TweetDetailActivity {
} // 一覧
TweetsActivityViewModel {
List<TweetViewModel> tweetViewModels;
}
// 詳細
TweetDetailActivityViewModel {
TweetViewModel tweetViewModel;
}
TweetViewModelをどっちでも使いまわしたいからとりあえず、TweetViewModelには親の参照を持たせずに・・
まぁ、適当でいいんじゃねw webviewってアプリ側に悪意があったら情報取られますか?
例えばLINEのQRコード読み取りで開いたサイトはChromeではなくLINE内のブラウザで開かれると思いますが、この場合URLだけでなくにcookie等も取得できてしまいますよね? >>932
色々調べてみて貰ったんだけど、原因はAndroid10の可能性が高い
たまたまSony系を使ってる人がAndorido10を使ってたからエラー出てたみたい アプリからダウンロードフォルダのパスを取得する方法についての質問です。
API28(Android9) 以下の場合:
File dataDir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS);
API29(Android10) の場合:
マニュフェストに android:requestLegacyExternalStorage="true" を追記
File dataDir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS);
API30(Android11) の場合:
どーしたらいいのか分かりません。
Environment.getExternalStoragePublicDirectory が API29で使えなくなったけど、マニュフェストを弄ればなんとか使える
API30 でそれも許されなくなって、どうやってダウンロードフォルダのパスを取得したらいのやら教えて欲しいのです。
よろしくお願いします。 >>950
contentResolver を調べてみたのだけど
>アプリが作成していない MediaStore.Downloads コレクション内のファイルにアクセスする場合は、ストレージ アクセス フレームワークを使用する必要があります。
>参考URL:https://developer.android.com/training/data-storage/shared/media?hl=ja
API30(Android11) の場合ストレージ アクセス フレームワーク(SAF)を経由しないとダウンロードフォルダのパスを取得出来なくなってるのでは?
初めてAndroidアプリを作ってます。
アドバイス(出来れば具体的に)お願いします。 もうストレージアクセスフレームワーク使わないと駄目なんじゃないかね API29対応して放置してるアプリがあるんだけど、pixel4aのAPI30で動かして見ると、SAFを通してならばダウンロードファイル全部見えてるぽい
scoped storage 経由だとなんか一部しか見えない API29対応するときに、SAFかscoped storageだけしか見ないようにした
ファイルパスを入手するのでは無くて、ContentResolver::openFileDescriptor使ってファイル見るようにしたと思った 沢山のアドバイスありがとうございます。
頂いたアドバイスの内容を調べ、勉強させて貰います。 自分はちょっと特殊な(工場で使うような)ファイルのビューアを作ってます。
やっぱりAPI30のファイルアクセスで悩んでいて、ファイル形式が一般的でなくて拡張子で種類を判断していたけど、これからどうしたものかと。
別のアプリはSAF使ってファイル選択後に種類判断したけど、関係ないファイルが表示されるし、選択ミスもあるしで使いにくいったらありゃしない。
また別のアプリはフォルダ下にある複数のファイルが必要なのでどうすりゃいいんだろ? Googleの手数料が15%になるってことはAdMobの広告収入が今までより20%くらい増えるってことなん >>958
SAFのUIでファイルを指定させるのではなくて、フォルダを指定させることができる
アプリは指定されたフォルダ以下の階層のファイルやフォルダへのアクセス権が貰えるので、ファイルの一覧を自分で取得して選択リストを自前で表示すればいい
ただ面倒なのは、ファイルの一覧の取得やファイルへのアクセスには、SAFの独自関数を使用する必要がある(はず)で、JavaのFileクラスやLinxuのシステムコールではアクセスできない(と思う)
ユーザによるSAF UI上でのフォルダの指定は、最初に一度やって貰えば、アプリ側でそれを保存しておける 本当にパスが必要ならスーパー権限要求すればいいだけ
MANAGE_EXTERNAL_STORAGE
ストア経由しなければこれでもいいし、ストアで配布すると審査厳しくなるのだろう.. 開発中のアプリを見せた際、マテリアルデザインのテンプレートを使った開発を行った方が良いとアドバイスを受けました。
なので、マテリアルデザインについて勉強中なのですが、
皆さんは、どのようにデザインを作られていますか?
また、マテリアルデザインのテンプレートのお勧めなどありますか? アプリ更新して40時間ぐらい経つのにまだ審査中なんだがなにやってんの >>964
アンタのアプリを待ってる人なんか誰もいないから気にすんな たまにあるよな、すげー時間かかるとき
別のアプリが2時間ぐらいで承認されるのに、一方で1週間ぐらい待たされるアプリもあったな コロナの影響か分からないけど最近は72時間以上かかる事が多いみたい https://www.publickey1.jp/blog/21/10googlejava_se.html
GoogleがJava SE APIをコピーしたことは、プログラマーが自分の才能を生かして新しいプログラムを開発するために必要なコードのみを含んでおり、法律上、その素材におけるフェアユースにあたる。 おおおおいい!まだアプリ更新されねえぞはよしろよ!! 私がこないだ、申請した時は3〜5日(土日挟む)くらい掛かった記憶がある Android11だとダウンロードフォルダのパスの取得が難しくなってるよね
chromeでダウンロードする場合、どうやって処理してるんやろか? SDカードの存在確認ってどうやって作っていますか? もうAndroid studioぐらいのエディタになるとグローバル変数は色分けしてくれるんで
変数の接頭にこれはグローバルだとわかるようなの書かなくていいんですかね? グローバル変数を使ってしまっているという罪の意識を常に喚起する様に接頭辞にXXX_とかつけるべきだよ 使うなと言われるけど速度優先の時にはどうしても使ってしまう
毎回下の階層に余計にデータ渡ししないといけないし、繰り返し呼ばれるようなところは特に AndroidはC/C++みたいな糞と違って自由だから
むしろSharedPreferenceManagerとか作ってグローバルで持ったらいいよ Androidってグローバル変数の値保持は保証されてないでしょ?
怖くて使えない android-studioでrxjavaをデバッグしているのですが
関数
return Observable.just(1)
.observeOn(Schedulers.computation())
.concatMap(v -> {処理})
.observeOn(AndroidSchedulers.mainThread())
.concatMap(v -> Observable.just(2));
このコードで上側のconcatMapは呼ばれるのですが
ステップ実行していくと{処理}の部分が全く呼ばれず
次のobserveOnに行ってしまいます
なぜか分かる方いらっしゃいましたらどう対応すればいいのか教えて貰えませんか
関数は戻り値を他のObservableとつなげて使っています ブレイクポイントの位置がズレてるとか?
一度処理の部分を関数に切り出して関数の中にブレークポイントを置いて、動作するか確認 midiシーケンサーつの作り方考えてます。
midiserviceってドキュメントみると外付けのmidi機器だけでなく、仮想デバイス(xmlで定義しておくとgetDevicesで取得出来る?)からmidiキーノートの送信って出来そうですけど合ってますか? 皆さん…Android12対応…スプラッシュ…いつやります?…7月くらいにやってもいいんだけど…
Androd12のSDKは…まだpreviewになってるけど…もうやっちゃった方がいいの…? Android11が…2020年9月リリースで…Xperiaが対応したのは…2021年2月…
結構時間かかってるので…そんなに…焦らなくてもいいかもしれない…
ちなみに…今のところ…ベータでは…どのSDKでも…勝手にスプラッシュが出る…
それを…調整しないといけない… Pixelは…Android11リリースした次の日に…アップデートが来たらしい…
まずいなぁ…どのタイミングで…アプリを更新すればいいのやら… >>990
>それを…調整しないといけない…
なぜ? デフォルトのままだと…アイコンのサイズが…フィットしてない…
それに加えて…僕は…独自のスプラッシュを使用しているので…
そっちを出すように…変えたい… ラウンドアイコンなら…綺麗に出るみたいだが…そこらへんも込み込みで…
Slot
🎰👻🎰
🌸🎴😜
💰🎰👻
🚩(LA: 1.12, 0.91, 0.81)
Status ♠5 ♦9 ♠6 ♦6 ♠8 (1st.)HP: 1000 pts. たぶん(0)
1.25, 0.95, 0.83(931.988281) Proc. [0.241014 sec.]
このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 1582日 18時間 1分 39秒 5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php レス数が1000を超えています。これ以上書き込みはできません。