rxでリアクティブプログラミングできない奴は この先生き残れないからな覚悟しておけ!
質問します 今unityでAndroidアプリを作ってるんですけど あるアセットを使ったところこの様なマニフェストが生成されました <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.VIBRATE" /> <uses-permission android:name="android.permission.GET_TASKS" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.GET_ACCOUNTS" /> <uses-permission android:name="com.android.vending.CHECK_LICENSE" /> <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" /> <uses-permission android:name="com.unionassets.android.plugin.preview.permission.C2D_MESSAGE" /> <uses-permission android:name="android.permission.WAKE_LOCK" /> 俺はこのアセットのリーダーボードとadmobの機能を使ってるんですけど実際に実機でビルド させたところ何故か「写真やメディアへのアクセス許可」と「連絡先への アクセス許可」というダイアログが出てしまいました このマニフェストの中にはその様なものはないと思うんですけどどうでしょうか? 「このパーミッションが影響している」というものはあるのでしょうか?
>>6 返事ありがとうございます それだと俺の腕ではよくわからないですね ちょっとしばらく検索してみます retrolambdaみたいなOSSのgradleプラグインを使用する場合、アプリにライセンス表記はいるのでしょうか ライブラリがapkに入るわけではないから不要ですかね わかる方いますか
それは「gccでコンパイルしたプログラムはGPLにはならない」というのと同じ話かと。 そのプラグインがおかしなライセンス設定していなければだけど。
Design support library使ってNavigationDrawer作ると枠が出るのですが仕様でしょうか Android4.1.1だと出て6.0だと出ない レイアウトによってはそりゃなるだろう なにを聞きたいのかわからん
Android studio更新したらデフォルトのルートレイアウトがconstraint layoutになってるわけだが お前らconstraint layout理解した?
クイズのアプリを作ろうとしていて、 "回答"というボタンをタップすると、正誤と解説表示し、 "回答"ボタンを"次の問題へ"というボタンに差し替えようとしています。 この場合、 方法@"回答"ボタンのリスナーの挙動やテキストを書き換える 方法A最初から二つのボタンを作っておいて、表示・非表示を切り替える どっちが一般的でしょうか? もしくはそれ以外に良い方法があったら教えていただきたいです。
正誤と解説をどのように出すか次第だし、ボタンも同じ方針にすれば良いだけでは?
>>15 ありがとうございます。 解説の表示・非表示を切り替えることが思いのほか大変だったので 解説も"次へ"のボタンもダイアログに表示することにしました。 >>16 前に簡単な問題アプリ作ったときは 回答欄をVISIBLE.GONEにしておいて都度切り替えてやったよ >>14 画面をまとめて切り替えるなら FrameLayout ├RelativeLayout/match_parent │ ├TextView(問題) │ ├RadioButton(回答選択肢1) │ ├RadioButton(回答選択肢2) │ ├ : │ └Button(回答) │ └RelativeLayout/match_parent ├TextView(正誤) ├TextView(解説) └Button(次の問題へ) として、(重なっている)二つのRelativeLayoutをVISIBLE/INVISIBLE切り替える LayoutをINVISIBLEにすれば、その子もINVISIBLEになる >>17 ありがとうございます。 焦らずにもう一回考え直してみます >>18 ご丁寧にありがとうございます! Visibleの切り替えだと、空白が出来てダメだと思ったんですが自分のやり方が悪かったようですね。 やり直してみます。 AlarmManagerで10分後にセットした後、端末の時刻を10分後に設定したら、 即alarmが実行されるのが正しいんでしょうか? それともやっぱり10分後にalarmが実行されるんでしょうか。
ってことは時刻を変更したことをbroadcastでonReceiveしてalarmを消したあとに再度設定しないさないといけないってことですか?
うーん そもそもalarmmanagerはタイマー出はなくアラームなので時刻で発火するものだからね どうしてもalarmmanagerで経過時間で発火させたい=プロセスを起床させたいならその方法しかない プロセスが生きてる前提ならタイマーとかhanderでやったほうがいい
あ、駄目だ。 broadcastでonReceiveする前にalarmが発火してしまう プロセスが死んでいてもやりたいんですよねえ。
あら、そうなっちゃうか exactじゃない方のapiならそこまで瞬間的に発火しないと思ったが 仕様を見直そう^^
@SQLiteの作成時にテーブルを作成する処理を記述 A後になってテーブルを追加するけど、SQLiteを作成する処理が走らず、テーブルが作成されなくてハマる というのうも過去何度も繰り返しております。 使用するテーブルを最初から全部考えておけば済む話ですがなかなかうまく行きません。 どうやって処理してますか? ・毎回アンインストール&再インストールしてSQLiteを再作成する ・SQLiteを毎回作り直す処理を書く ・"No such table"の例外を拾ってテーブルを作成する処理を書く 毎回アンインストール&再インストールしておりますが、 なんか無駄を感じます。
テーブルを追加する処理が確実に走るようにするじゃないの? onUpgrade()
DBのバージョン上げればonUpgrade呼ばれたよな確か
よくあるサンプルだと、onUpgradeは DROP TABLE して onCreate呼んでるだけだよな でも普通はユーザのデータ消したくないからDBのバージョン比較して ALTER TABLE 〜 ADD COLUMN とかしないとダメだよね よく探せばそういうサンプルもけっこうある >>34 はDBのバージョンすら上げてなさそうだが >>32 ELAPSED_REALTIME_WAKEUPは? 重い腰を上げてAndroid データバインディングを勉強し始めて2日目で、 .NETのデータバインディングと比べて色々不満があるが、今のところの一番気になる 点はMenuはデータバインドできないの?? 通常のビューはデータバインドしてメニューは今まで通りの手動とか 混在コード書かなきゃいけないの??
データバインディング、MVVM、Rxは今や常識だからな 知らないのは恥ずかしいこと
>>39 現状は無理です .NETと違って設計段階でbindingを考慮してなかったからな 同様の意見は多数出てるからそのうち対応される可能性はあると思うよ 暗黙的インテントでstartActivityを投げる時 出てくるアプリケーションのリストをキャンセルした際のリスナーって無いのでしょうか?
>>42 現状は無理ですか。しょぼーんですね。 ありがとうございます。 結果が欲しけりゃstartActivityForResult
MPAndroidChart の LineChart を2つ使って線グラフを2つ描いているのですが、この2つのグラフの拡大・縮小、上下左右移動を連動させることは可能でしょうか? 一方を右にスライドさせるともう一方も同様に右にすらいどされ、常に同じ位置を表示している感じです。
buildTypeとflavorを使ってビルドを分けることはできたんですが、 もう一階層作って3階層でビルドを分けたいんですができますか
>>47 ぐぐれ Flavor Dimensions dependencies{ }の中で、 flavorによってcompileするライブラリを条件分岐で切り替えたいんですが どうやったらいいですか
C言語の#ifdefみたいなのってできないんすか importの部分をビルド設定で有効にしたり無効にしたりしたいです!
このところ毎日のようにGoogle製アプリが更新されているけど何事? 同じアプリが何度も更新されているのもあるようだし・・・
ソース毎で分けたら同じソースが2か所に配置されて一か所修正したらもう一方も修正しないといけなくなるじゃないっすかー なんでプリプロセッサの機能を消したかなあ
・Webサーバを用意して、ユーザごとのデータを保管 ・アプリ側でユーザ名とパスワードを入れて、Webサーバの自分のデータにだけアクセスを許可 という仕組みを作りたいんですが、どうやって作ればいいのか方向性が見えません。 ググってみると、AccountManagerなるものが出てきますが、アプリもサーバも自分で用意する場合でも使うものなのでしょうか?
>>57 フレーバで切り分ける部分だけを別クラスに分離して、ファイル単位で分けるのが普通だよ ifで分けるとかそれができないときの最後の手段 >>59 realmとかfirebase使えばいい ありがとうございます。 Firebaseの無料分で十分だと思うので調べてみます。 BaaSなるものがあることを昨日知りました。
とりあえずソースコードは共通クラスを作ってflavorでサブクラスを分けることでいい感じで分ける事ができたんですが、 レイアウトファイルはどうしたらいいんでしょうか xmlにif文が書けたらいいんですが現状ほぼ同じファイルが2つできてしまってて、 一方を書き換えたらもう一方も書き換えないといけないです
二度と出てけ 二度と (副) 〔否定表現と呼応して〕 その事は今回限りであって、 今後は絶対に△ない (しない) と言い切る様子。 出てけ 出ていけの省略口語。出るの命令形。 二度とは否定を伴うはずなので誤用ではあると思われるが、この場合、出ていかなかった事は今回限りにしろという言う意味になるはずなので次回ここに来たら出ていけという事になるのだろうか 考えれば考えるほど混乱し胸が苦しくなる言葉だ
Inbox とかでドロワーで選択して、 フラグメントが表示されたとき、Toolbarとかの色が変更されるけど あれどうやってやるの?
質問ですが、 listviewで下詰めで要素を表示するにはどうしたらいいでしょうか? こんな感じにしたいです。 >>77 すみませんが、もう少しだけ詳しく教えていただいてもよろしいでしょうか?初心者ですみません listviewの件ですが tablelayoutにして解決しました。 ありがとうございました
>>81 linearlayoutのgravityをbottomにしてその中にscrollviewをwrap_contentで置いてtablelayoutを入れただけです。 <linearlayout width=match height=match gravity=bottom> <scrollview width=match height=wrap> <tablelayout> .... .... </tablelayout> </scrollview> </linearlayout> こんな感じです。 それだと大量のitemを投下すると重くなる気がするけどいいのかな
javaも書いたことないけどiPhoneアプリでオブジェクト指向やxcodeは大体使えるから 中級者向けの本が欲しいんだが何かいい本ありませんか
「黒帯エンジニアが教えるプロの技術 android開発の教科書」って本が結構良かった 比較的最近(2016/7)の本だし 開発するにあたって何に気をつけるべきかが(割と荒く)書いてある 1から10まで書いてないと気が済まないならおすすめはしないけど これに書いてあることを足がかりに自分で調べられるなら役に立つと思う
「黒帯エンジニアが教えるプロの技術 android開発の教科書」 の内容紹介の説明だけ見たけど、 中級者向けっていっても、>>84 は基本的な事をすっとばしたいのか?? いきなり、マネタイズとかパフォーマンスとかマテリアルデザインとかより、 やっぱ基本的なアクティビティのライフサイクルから始まって、 フラグメントやビュー、ビューグループの各種コントール、ダイアログなど そこらへんは他の環境で経験あっても勉強しないとまずいよーな。 おおすまんな。本屋で読んでみるべ 今までゴリ押しで勉強してきたからなぁ。丁寧に順番守って勉強出来る自信がない。、
>>87 日本語書籍を用いて順番守って学習しないと使えないことから抜け出せてプログラマーとしてのスタートラインだから素人の言うことを真に受けるな おまえは日本語くらいしっかり書けるようになってからレスしろ
styleのitemに指定できる要素について質問させてください。 親要素に@android:style/Widget.Holo.TabWidget を指定した独自スタイルを作成し、 tabLayout要素を上書きしようとitemタグに「android:tabLayout」と指定したところ、 「No resource found that matches the given name: attr 'android:tabLayout'.」 とエラーが出てしまい指定できません。 マニフェストの指定ではminSdkVersion=15, targetSdkVersion=21としており、 ビルドターゲットにはAPI=23を指定しています。 上記スタイルはvalues(接尾辞なし)にあるstyle.xmlで指定しています。 AndroidSDK配下にあるapi15, api21, api23のattrs.xmlファイル全てに <declare-styleable name="TabWidget"> <attr name="tabLayout" format="reference" /> の記述があるため指定できると思っているのですが、 何か不足している記述等ありますでしょうか ご存知でしたらご教示いただけますでしょうか
privateなリソース(フレームワーク内部用)だから使えないようになってる public.xmlにないやつはprivate
>>92 今までの謎が解けました。 ありがとうございました。 アプリから呼び出せないリソースはandroidのソースツリーから直接頂いたことはある。
/system/usr/keylayout/ACCDET.klってファイルって 有線イヤホンのボタン押下時のキーコード定義だと思うんだけど これに定義されてる key 163 MEDIA_NEXT key 165 MEDIA_PREVIOUS この辺ってイヤホンをどう操作したら入力した事になんの? 3ボタン付きのイヤホンで受話、ボイスアシスタント、音量操作とかは出来たけど、上記の奴がどうしても分からん…
次曲、前曲に飛ばすためのボタン。 サポートしてるイヤフォンならマニュアルに操作方法載ってる。 だいたいどれかのボタン二度押しになってるんじゃないか
>>96 サポートしてるイヤホンって何かある? どちらにしても、普通の3ボタン式のイヤホンじゃ駄目か… NestedScrollViewの中にRecyclerViewを入れると、 RecyclerViewにAdapterを設定したタイミングで 画面に表示されていない画面外のセル全ての 画像読み込み処理が実行されてしまってるんですが、 回避する方法はありますか
>NestedScrollViewの中にRecyclerViewを入れると、 入れない、が正解。
じゃあ画面全体をスクロールさせたい場合は adapter内でpositionによってレイアウトを分ける みたいなことしないといけないんですか 面倒くさいんですけど
ちがうちがう。 NestedScrollViewとRecyclerViewは、どっちもNestedScrollingChildのサブクラスで、 CoordinatorLayoutのchildとして機能するということだ。 これくらい、ドキュメントで調べろよ。
CoordinatorLayoutは使っていて、 その内側にNestedScrollViewを使っています。 その内側にRecyclerViewとその他のViewがいくつか配置していて、 画面全体を上下にスクロールさせたいんです。 なので、この場合は、NestedScrollViewを使わずにCoordinatorLayoutの子としてRecyclerViewを一つ入れて、 RecyclerViewの中にその他のいくつかのViewを配置しないといけないと思ったんで、 >adapter内でpositionによってレイアウトを分ける >みたいなことしないといけないんですか っていう結論になったんですが何か違ってますでしょうか
>>104 それはBluetooth接続のワイヤレスイヤホンだろ? だったらAVRVP.klの方に定義してあるキーイベントだから違うなー。 有線イヤホンのマルチファンクションボタン連続押しによる機能分けも アプリ側の実装っぽい。 ACCDET.klのやつは、とりあえず定義してあるだけの内容かな… 検証用のプロジェクト公開してくれたら試してみるかもしれない 試してみないかもしれない
常に最新OSが手に入れられるのってnexusとpixelだけなんすか
NotificationListenerServiceを利用していて、startService()したあと、onStartCommand()が呼び出され、getActiveNotifications()を実行できる状態になっていることは確認できるのですが、なぜかonListenerConnected()やonNotificationPosted()がまったく呼び出されません。 マニフェストや通知へのアクセス設定に不備がない場合、何が原因なのでしょうか?
permissionとintent-filter設定してないとか
oncreate内でtablayoutを作ってTabLayout.getTabAt(0).selectをしたんですが0番のタブがクリックされたときの処理がされませんでした どこに(どのように)書けばいいんでしょうか? viewpagerは使っていません
android6.0の端末で出てたログが7.0の端末だと出なくなったんだけどこの辺何か設定必要なんだっけ? 同じapkで出なくなったのはデバッグレベルのログ
>>114 出てたこと・出なくなったことはどうやって確認しましたか? ん?Picture in pictureぐらいしか目立つのはなかった気がするが
いやいや バックグランドサービスが一切動かなくなるんやで iOS並の糞OSに超絶デグレでうちの開発はパニック状態や
>>115 onCreateで各レベルのログ出すだけのアプリ作って6と7それぞれにインストール 6だとe,w,i,d,v各レベル出力できたけど7だとd,vのログがでない どうせAndroidManifestにフラグを一つ追加したらオフにできるにきまってる
>>118 あれはようするにサービス使ってるアプリはAPIレベル27以上は使うなというgoogle様のご意向だよ googleが心から反省するまで26で止めればいいさ androidはbackgroundで動けることが唯一の強みだったのにほんとバカだなよな 最近のgoogleは機能追加ではなくアプリに制限かけることしか考えてないわ
そもそもruntime permission対応したくないから23以上にしないし
background制限とかマジ勘弁 まーたお仕事が増える・・・
foregroundのサービスなら大丈夫っぽい そろそろforegroundはアイコンなしでできるようにしてほしい
プログラムをプラットフォームのAPIべったりで書く奴は無能 backgroundサービスでもJobSchedulerでもどっちでも動くようにしとけ
サービスがプラットフォームべったりというならjobschedulerもべったりだろという
だからサービスにもjobschedulerにも依存しすぎないように実装しておくべきってことでしょ
そろそろosの切り捨てを発表してほしい バージョンによって同じコードでも推奨非推奨、動く動かないがあるからめんどくさい
そんなこと言ったらおまえが切り捨てられるだけじゃね
アプリ内課金でただの寄付でお金取ってもいいものなの? アプリを気に入っていただけましたら寄付をお願いします。みたいなの
>>134 そうだとしたらどんな些細なものでもいいから新機能解放することにすればいいな 背景色変えられるだけの機能でもいいし カンパウェアだろ。別にいいんじゃねーの?Googleの規定と、法律まもれば。
詐欺といったのは、些細な機能開放とかの有無ではなく、ユーザーから返金要求されたときに寄付だから返金しませんっていうのをやりたいのかなと思った点 >>135 そんな機能が付加価値になるアプリに寄付する奴はいねぇw まずメリットがよくわからない これを使わないと実現できない機能があるわけじゃないし ユーザーメリットがあるわけでもないのに何でこんな面倒なものやらないといけないのって感じ 両方やってみて明らかにメリットあるって言える人いるの?
その質問定期的にされるから、 前スレの>>950 あたりも見てみん。 俺も齧った程度だけどリアクティブの良さは時間や実行タイミングを簡単に管理できることだと理解してる そりゃ既存のスタイルでも実現できるんだけど わざわざスレッドがどうこうって設計する手間が省ける 旧来のプログラミング手法とは大きく違うからとっつきづらいだろうけど 時間の管理をライブラリや言語レベルでサポートしてくれる感じ
リアクティブでRxJavaを使うのは周りではもう今はデファクトスタンダードだなあ
一見面倒に思えたとしてもRx使わずに同じこと実現するのと比べれば圧倒的に楽だろ
そうだな メソッドチェーンまで使いこなせている奴は少ないけど
私物のXperia X Compact(Android 7.0)で電話発信→通話→電話終了すると PhoneStateListenerのonCallStateChanged()で CALL_STATE_IDLE→CALL_STATE_IDLEという受信シーケンスになるんだけど こんなことあるんだろうか…?エミュレータだと再現しないから端末固有だろうか?
Androidプログラミングを始めるおっさんたちのスレ
RxAndroidでコレクションってどう扱えばいいのでしょうか? class Model { private Observable<String> field1; private Observable<Integer> field2; private Objservable<List<String>> field3; <-- ?? } コレクションの要素の追加、削除を監視したいんですけど、 コレクション毎入れ替えるしかないのでしょうか?
それはRxAndroidの話ではなくRxJavaの話では? CollectionのアイテムをemitするObserver作ってonNextとかでSubscriber側で監視すればいいんじゃないの?
>>それはRxAndroidの話ではなくRxJavaの話では はは。すみませんでした。RxJavaの話なんだけどめんどくさかったのでRxAndroidと 書いてアピールしてしまいした。 >CollectionのアイテムをemitするObserver作ってonNextとかでSubscriber側で監視すればいいんじゃないの? 追加はそれでよさそうなんですけど、削除はどうするんですかね。 ああ。アイテムをemitするんじゃなくて、リストに対する変更を表すクラスをemitすればいいのかな・・
ここの人はクラス設計とかどうやってるの? 通勤の行き帰りで構造を考えて家に帰ったらそれを元にコード書きたいんだけど androidのアプリでいいの無いかな? 開発がmacでやってるからmacと連携できるのがいいんだけど
UMLにしろポンチ絵にしろお絵描きアプリで十分ですよ
一言アホとバカにして消えるくらいなら知識を教え合ってくり〜
>>153 よほど大きなタブレットでないと俯瞰できなくないか 印刷して移動中に紙に書き込んで帰って入力 1クラスについてやりたいならテキストで Rxって実際何に使うん 入門記事読んでたらlist操作とか出てくるけどそんなの大してメリット感じられないし、 唯一見てて便利そうだと思ったのはretrofitをつかったAPIアクセスのサンプルだけだったな 他に何かあるん
>>161 非同期で何かを処理させてその結果に応じて何かをするケース全てに使えるわ 処理毎にいちいちinterfaceを自前で作る必要もなく実行スレッドを変えてもコードが全く変わらない 更にその非同期処理を複数の使用者でsubscribeすることでひとつの処理に対して複数人が同時に結果を待つようなことも簡単にできる またよく出来たobservableはそれを再利用し、別のobservableへチェーンさせることで複数の連続した処理を一つの処理のごとく扱える上にそれをキャンセルすることも容易 その結果、使用側の状態管理が非常に簡潔になり状態管理の煩雑さに起因するバグが減る スレチですまん。 RXみたいなことを、swiftでやる方法教えてクレメンス
>>162 ちょっとRxJavaについて調べてみるわ >>166 結局、Rxswiftにいきついたです。 あんがと。 >>処理毎にいちいちinterfaceを自前で作る必要もなく実行スレッド 新しくHot/ColdなObservableって概念学んだけど、HotなObservableも変えられるの? 誰かが作ったライブラリがObservable返すとして 使う側がでよし実行スレッド変えようとして Observable<String> hotObservable = getHoge().subscribeOn(Schedulers.IO)とか 自由にできんの? 実行スレッド変えるって誰がやればいいんだよ。
つか、自由に実行スレッド切り替えられないのか? observables.subscribeOn(Scheduers.io()).subscribeOn(AndriodSchedulers.mainThread()) でもとに戻せじゃん。 ってことは他で実行スレッド指定されたらこっちでは制御できないってこと? しょぼぞう
observerOnも調べなさい これで任意にスレッドを行き来できる
>>169 subscribeOnはどのスレッドで処理を実行するか observeOnはどのスレッドで結果を受けるか bluetoothchatを入れて通信自体はできたんだけど送った文字がそのまま帰ってくる これはandroid側のプログラムに問題有り? ラズパイが送られてきたもの一文字ずつ戻してるようにしか
コード書いた本人が何が起きてるかわからんものを赤の他人が画像1枚でわかるわけないだろ 青歯の届く距離でチャットするくらいなら普通に会話したほうがいいよね
VisualStudioでXamari使って作ってみたらバイナリがDLLだった これを実機に入れても動かん どうしたらよいの?
>>179 xamarin.androidを使えはdllがapkに含まれた形で生成されるが Runtime Permissionについてなんだけど checkSelfPermissionで大まかなチェックするのはいいとして APIレベルでSecurityExceptionでいちいち捕捉しないといけない? どこまで対応するのがベストなんだろう?
securityexceptionのcatch自体にapiレベルをみる必要はない 基本的な方針としてアプリ起動時に全てのpermissionを取ってしまうのが普通かと
>>183 瞬間的なタイミングで権限OFFにされる事なんて あり得ない想定でいいのかな? >>184 OFFにされたらプロセスは即座にkillされる そこで考慮しないといけないケースは2つ まず、履歴から戻った場合。最後に表示していたActivityが直接起動されるから、パーミッションが必要な全てのActivity起動時にパーミッションを取るようにしないといけないということ ふたつめ。stickyなサービスがある場合。パーミッションがない状態で起動されてしまうのでなんらかのフェールセーフは必要となる targetSdkVersionを22以下にすればすべて解決する
>>185 なるほど参考になります 権限チェックの箇所洗い出しとどうやってエラーハンドリングや 縮退させて動作させるか検討してみます adbの install -r って、adb uninstall と adb installを組み合わせたものっていう認識で大丈夫ですか?
uninstallしたらデータ消えちゃうでしょ。 データ消さずに更新するのがinstall -r
Google Play Consoleの画面が変わってstoreで見るのクリックする所が消えてるんだがどっから行ったらいいんだ
mvvmって要は、 viewで何かしらのイベントが発生したら bindingで紐付いたviewmodelの処理が呼ばれて、 そこからmodelの処理が呼ばれてrxで結果を返して、 bindingで結果をviewに反映させるってことなん viewからmodelの処理を呼びたくなったら絶対viewmodelに処理を追加して viewmoel経由で呼ばないと駄目なん 面倒くさくないん
それでプログラムが分かりやすくなるん 保守性があって不具合の解析がしやすくなるん
MVVMに限らずデザインパターンを適用すると必ずコードは増えるし面倒になるのは避けられない フリーダムに作るとActivity、fragmentが巨大なりがちだから何か設計の指針があったほうが整理しやすいかもね 選ぶのは君だよ databindingは好き嫌いあるし
正直MVVMのメリットは全く理解できないが 周りが使ってるから時代遅れになってる気がして調べてるだけ 単体テストがやりやすくなるメリットがあるとかいうけど 単体テストの意義も正直理解できない 普通のやり方で何の問題もなくアプリが作れてるわけだが何でこんなの学ばないといけないの むしろMVVMとかリアクティブプログラミングとか使ってるプロジェクトの方が炎上してる率が高い気がするんだが
層の繋ぎ目がRxJavaに依存しているというのはデメリットだと思う
modelのメソッドが返り値をもったら駄目でRxのSubscribe経由でなら結果を返していい理由も全然わからない そうすることでプログラムが分かりやすくなるん 保守性があって不具合の解析がしやすくなるん 全然意味が分からない 結局お前らもみんながやってるからとか流行ってるからやってみてるだけで本当に価値があるか理解してないだろ みんなが大学行くから僕も行くじゃ学費の無駄
layontInflaterで呼び出した子XML内の部品にアクセスできません(泣) idも付けているのですが、null扱いになります。 読み込んだ直後なら動作するのですが、 子XMLが切り替わった後には内部のViewが無効となります。 XML切り替え時のremoveメソッドが無ければ動作するのですが、 これが無いと、切り替えるたび子がどんどん増えてダメですよね 何とか都合よく、XML切り替え+内部View参照する方法はないものでしょうか?
>>198 viewgroupに対してremoveViewしたあとにaddViewしているという意味か? 論理的にはそれでaddviewしたviewが消えるなんてありえないので、単純なコードバグの確率100% それ以上はその情報からは推測できない 198ですが、色々いじってたら解決しました。 ありがとうございましたm(__)m
内容的にただのチョンボだから他人が得るものなんてない 報告なんていらないよ
初心者がミスりやすいとこがわかる そういうのなかったら質問スレなんて来るかよ
Rxの勉強する前にLINQの勉強したほうがいいですか
知識が多くて困ることはない なんでも勉強しろ じゃないと俺みたいに残念人生を送ることになるぞ
>>206 順番的にはその通り Rxを学ぶ前にLINQ listとかのコレクションに対してSQLの命令を実行できるようにしたのがLINQで、 それを発展させてコレクション以外にもイベントとか通信の結果とかにまでSQL的な操作をできるようにして、 さらにその操作をめっちゃ種類を増やしたのがRxって感じですか
>>209 そこまで概観できてるなら怖がる必要なんてないよ LINQ->Rxの順で勉強しな 実りは多い 保証する LINQ介する必要性を全く感じないけどAndroid開発する上でLINQを学習するメリットはなに?
AndroidなんだからLINQじゃなくてJava8のStream APIがいいだろ
streamはandroidでは使えないし移植される予定もないからrxでいいと思う
なんてことをandroidの8拡張にはoptionalもないし色々考えているとkotlinに行き着くけど業務でkotlin使いましょうとはなかなか言えないのが辛いところ
歴史的に、まずLINQがあって それを拡張したのがRxと聞いた
>>211 Androidだろうがデスクトップアプリだろうがロジック部分の開発に求められる技術は大して変わらないだろ つまりAndroid以外の開発で使われていて便利な技術ならAndroid開発でも便利ということ >>216 うんだからLINQ→Rxの順番で勉強するメリットになに? そりゃRxってのはイベントをLINQ形式で書けるものなんだからLINQわかってた方が良いでしょ
なるほど 大は小を兼ねると思うがあとは本人が決めることだね
flowableとobservableってどう使い分けたらいいんすか
クライアント側でバックプレッシャーが必要なことなんてそうそう無いのでObservableでいいです
サーバ側も自分ところでお守りしているなら、Flowable使ってなんとかするのはアリでは。 他人様のサービスなら、ガンガン投げつければいいけど。
結局retrofit2の通信ぐらいしかrx使わなくね
最近リリース前レポートテストを使った方、情報求む!!! Google Play Consoleが新しくなってから初めてアプリの更新を行おうとしているのだが・・・ 以前はアルファ版にAPKをアップロードしたら自動でリリース前レポートテストが行われていたが、 今回APKをアップロードしてもリリース前レポートが作成されない。(テストが行われていない様子) リリース前レポートを作成するための手順が変わった? @ [Google Play Console]→[設定]→[リリース前レポート]が「リリース前レポートテストを 有効にする」になっているのは確認済。 A https://support.google.com/googleplay/android-developer/answer/7002270?hl=ja の「手順1:オプトインする」に「4.ページの下部で[オプトイン]を選択します。」と あるが、リリース前レポートのページの下部にこの項目は無い。 仕事では今ってMVVMで作るのが当たり前なんですか
将来的にはMVVMで作るのが当然になるんでしょうか
MVVMが優れているのは明白 採用しないのは単にMVVMを理解できないメンバーに合わせざるを得ないから
RecyclerViewの各アイテムのViewにMapViewをLiteModeで貼り付けたら地図表示はしてくれるんですが、アイテムによってズーム倍率が変わってしまいます。 ライフサイクル的な問題ではないかと考えているのですが、解決する方法等についてもありますでしょうか?
modelからViewModelに通信の結果を返すときに、 Rxとか使わずに、interfaceを渡してコールバックを返すようにするのは何かマズいんでしょうか
端末回転時にactivity破棄しない設定で、 admobの広告をsmartbannerのsizeで表示しているんですが、 そうすると端末回転時にadviewの高さが変わらなくて、 landscapeで起動してからportraitに切り替えた場合に広告が表示されなくなるんですが、 端末回転時にadviewの高さを切り替えてちゃんと描画させるにはどうしたらいいですか
SaveInstanceStateとか使わないと駄目なのかなあ
ジャイロで回転は使い勝手悪いよなジャイロ+ジェスチャーとか色々選べるべき
サーバ側に用意した大量のJSONの配列ファイルをVolleyを使ってダウンロードしようとしています。 そのままだと時間がかかるので、少しずつダウンロードできるように ・本体のJSONのファイルを分割 ・分割したファイルのリストをJSONに記録 ・端末はまずファイルのリストをダウンロードし、必要な都度に本体のJSONファイルをダウンロード という具合に書き直そうと思っています。 いつも車輪の再発明をしてる感があるので伺いたいのですが、 このような処理を簡単に行うライブラリや、デザインパターンのようなものが既にあったら教えていただけないでしょうか。 「そんなことはせずに、普通はこうする」のような指摘もありがたいです。
Volleyは時代遅れ 今はretrofit2 + rxjavaですよ
大量というのがどの程度なのか、必要に応じてというのがどの程度なのか 色々条件分からないと何とも言えない
>>239 Volloeyにこだわっているわけではないので、それも試してみます。 ありがとうございます。 >>240 辞書のようなアプリを想定しています。 一つの項目が5kb 最終的には10000項目以上をデータを置いて置きたいです。 次の項目に移動するタイミングでダウンロードや更新できたらいいなと思っています。 retrofitの良さがいまいちわからん okhttpとjacksonでよくね
rxと組み合わせると知らん人には何やってるかさっぱりわからんソースになる。
>>244 studio3はjava8対応だからもはや過去の遺物 まだ過去ではないだろ。3.0がstable来たら過去だけど。
google playでアプリをテスト公開後、 ストア情報を日本語と英語の2種類用意しました。 しかしandroidの言語を英語に設定→ストアを表示すると、 用意した説明文は全て日本語のままでした。 (ボタンなどplay上の共通項目だけ英語) 英語圏からのアクセスでないと表示されないのでしょうか? 試しにデスクトップからストアのURL語尾をいじると、正しく表示されました。 ストアに英語版の情報は送られているようです。 androidの言語設定は、アプリには反映されました。 ストアには反映されないのでしょうか? 海外の方がアクセスすると、日本語が出るのかと不安です。 勿論、デフォ言語は英語にしています。
>>249 ネタレスかと思いきや、結構それやってるデベロッパーありました。 無茶に見えて、ある意味この上なく確実な方法なのかも。 streamAPI, RxJava2, ラムダ式, Retrofit2, MVVM, データバインディング, Kotlin, Android Architecture components 勉強することいっぱいありすぎだろ
新しいこと覚えてやれることが増えるのって楽しくていいじゃん
正直、新しいコーディングテクニックを使わないと実現できないアプリの機能ってないし、 上に書いた技術を使った場合と使わなかった場合で、ユーザーメリットって何も変わらないと思うし、 プログラマーの自己満足でしかないなと感じるところはある。 なんつうか、アプリを完成させることが目的じゃなくて、 設計とかコードを綺麗にすること自体が目的になっているように感じてしまう。 100万行とかの大規模システムだったら厳密に設計とかこだわらないといけないと思うけど、 たかだが数万行のアプリでこだわるようなことなんかな。
その数万行書くのでも作業効率が上がるなら新しいコーディングテクニックを覚えて損はないのでは? 最近の言語とかライブラリってヒューマンエラーを回避するものだったり、手作業でやってたことを纏めてやってくれるものが多いから楽になる
RxJavaとか難しすぎて、調べたり、不具合が起きた時の調査に時間が掛かったりして 実感として作業効率が全然上がってない 最初にまっさらな状態からコードを書き始めるときは、気持ちよく書けるのかもしれないけど、 その後の不具合修正とか、仕様変更の段階になって、新しい技術を使っていることで、 逆に効率が下がっているってことないですか 新しい技術を使っていることで作業工数が減ったっていう統計とかあるんですかね
>>255 自分の作業効率が上がってると感じてればそれでよい レベルの低いものに合わせてても成長なし Streaming media with ExoPlayer - Google I/O 2016 VIDEO えくそプレイヤーみたいですね 職場で糞って言いたくないんですがどうしたらいいでしょうか ガラホ(SH-01J)向けにアプリを開発しようとしていますが メニューキーやカメラキーのラベルをアプリから設定することはできますか?
abdroid studioのデザイナーでウィジェットの幅や高さをmatch_parent にすると自動的にdpひょうじになってしまい困っています どうすればよいのでしょうか
Contextがよく分からないです。 ドット・インストールで当たり前のように「引数がContextなのでthisを返します」とか言ってて理解不能です。 コンストラクタとしてのthis()は理解できましたが、Contextのthisの意味を教えてください
this で自オブジェクトを指す Activityは(Contextを継承しているので)Context 引数として自分を渡してる
>>264 なんとなくわかった気がします! ありがとうございます SimpleAdapterのインスタンスに後から要素の追加はできないのでしょうか
backpressure有りのときはSubscriptionをSubscriber内で保持しないといけないから ラムダ式は使えないということですか
javaコードをkotlinに変換したらretrofit2のclassを指定する部分でエラーになるんですがどうしたらいいですか
Unresoleved reference BRとか出てデータバインディング関連のエラーが出る
retrofitの話じゃないのかよ アノテーション周りの依存ちゃんと整理してどうぞ
自作アプリをSDカードに移動できるようにしたいのですが、うまくいきません。 AndroidManifest.xml に、 android:installLocation="auto" を追加し、 build.gradle も minSdkVersion 15 としていますが、 [設定]→[アプリ]の「アプリ情報」画面で、[SDカードに移動]がグレイのままです。 リリースビルドでGooglePlayにアルファ版としてアップし、Googleからインストー ルしても同じでした。 Android Studioの「Start a new Android Studio Project」から * Minimum SDK = API15 * 「Empty Activity」 で新規に作成したアプリに android:installLocation="auto" しただけのものでも [SDカードに移動]がグレイのままです。 テストに使用しているのは、32GBのmicroSDを入れたLG G2-mini(Android4.4.2) ですが、既存のアプリ(トラブルナビ・ソニー損保製)が問題無くSDカードへ移動 できているようなので、端末の問題ではなさそうです。 どのような原因が考えられますでしょうか?
セッションとトークンの違いがよく分からない ネットで調べていても同じもののようにみえます
>>278 Xamarinやろーかなーって思ってたんだけどクソなの? そいつXamarinスレの荒らしだから プログラマーですらないのがバレてる
Xamarinのここが糞 Visual Studio for Macが頻繁にビルドが通らなくなるのが糞 gitでブランチを切り替えたり、画像リソースを編集しただけで ビルドが通らなくなる。cleanしたりリビルドしても直らない場合もあって、 頻繁にIDEの再起動を繰り返さないといけなくなる。 クロスプラットフォームのメリットなど吹き飛んでしまう非効率な開発環境が糞 Xamarin.Formsの提供する機能が貧弱で使い物にならないのが糞 WebViewなどXamarin.Formsの提供するUIを使ってクロスプラットフォーム開発できるかと思いきや、 機能が貧弱すぎて結局Android用とiOS用で処理を分けて実装しないといけなくなる。 ネイティブ開発だったらiOS用とAndroid用で2回実装すれば済むところが、 Xamarinを使うとXamarin.Formsの提供する機能で実装して糞な思いを させられた後で、Xamarin.iOSとXamarin.Androidで実装し直すという、計3回同じ実装をする羽目になる。 クロスプラットフォームのメリットなど吹き飛んでしまう非効率さが糞 実装に行き詰ったときにネット上の情報が少ないのが糞 qiitaの投稿数 iOS: 15,976 Android: 13,681 Xamarin: 874 <- stackoverflowの投稿数 iOS: 521,623 Android: 1,015,959 Xamarin: 63,070 <- Xamarinの情報はAndroidの10分の1もないということ 結局行き詰った時に解決ができなくて妥協する結果になりがちで、 その結果、アプリのクオリティが落ちてエンジニアもデザイナーもお客さんもがっかりするのが糞
>>281 OS名と開発環境の投稿件数を同列に比較するアホ iOSよりSwiftの方が件数少ないからSwift使えないと言ってるのと同じレベル
Google Play ConsoleからAPKのアップロードするのにやたらと時間がかかってすごいストレス。 画面上部の青いバー?が"処理中です"みたいな意思表示をしてくるけど、数分間はかかる。 Developer Consoleだとか、名前も古い時代にはこんなこと無かったのに、どんどん遅くなっている、気がする。 ブラウザでインターネットを閲覧する分には普通に表示されるから、回線のせいとは思えないのだけど、 皆さんはストレス感じずにConsole触れてますか?
>>284 俺のアプリがそんなに大きくない(APKで約9MB)からかも知れんが、 Google Play Consoleが新しくなってから2度アプリを更新してるけど 特に遅くなったとは感じないかあ >>285 そうですか。。 ありがとうございます。 自分は3MBくらいでもやたらと待たされます。 というか、アップロード以外でもすべてが遅い。 ちょっと環境を変えて試してみます。 Android8の動作確認のためにAVD用のx86システムイメージ落としに行ったら、GooglePlay付のがあった。 Android7以上のIntel-x86-AtomにGooglePlay付が追加されてる模様。 Android6以下もGooglePlay付にしてくれたらGenymotionを捨てられるのに・・・
withとalsoとapplyの使い分けの解説を頼む
>>293 val a = with("abc") { println(length); this } val b = "abc".apply { println(length) } val c = "abc".also { x -> println(x.length) } これ全部"abc"の文字列長をprintlnして、aとbとcには全部"abc"が入る ☆ 日本の、改憲を行いましょう。現在、衆議員と参議院の 両院で、改憲議員が3分の2を超えております。 『憲法改正国民投票法』、でググってみてください。国会の発議は すでに可能です。平和は勝ち取るものです。お願い致します。☆☆
static class clsTest { public int[] aaa = new int[10]; public int[] bbb = new int[20]; public int[] ccc = new int[30]; } ArrayList<clsTest> arrayList = new ArrayList<>(); いくつかarrayListを追加した状態で、 bbbだけを一括で取得するような方法ってありますでしょうか?
arrayList.stream().flatMapToInt(clsTest -> Arrays.stream(clsTest.bbb)).forEach(value -> System.out.println(value));
forEachを使うのですね、ありがとうございます
公文の進度が進み過ぎて能力追いつかず時間ばかりかかるようになったから とりあえず一時停止していたんだけど、いざ再開しようとしたら大幅に進度戻されたんだけど そういうものなのでしょうか?
Javaでアプリを開発したいのですがOPPOのColorOSというAndroid7.1を元にしたカスタムOSでもAndroidStudioなどで開発出来るのでしょうか
serviceを使うところってどんな状況でしょうか? 例えばスマホの加速度をグラフ表示してファイル保存する場合、 加速度取得とグラフ表示はUIスレッド、ファイル保存はserviceみたいな感じでしょうか?
音楽プレイヤーのバックグラウンド再生、 毎朝決まった時間に裏で何らかの処理をしたいときとか
AdMobの利用規約に同意しろとかいうメールがきて、 リンクをタップしても同意ボタンが見当たらないんだがどうすればいいんだ
>>306 その場合は音楽ファイルの読込とバックグラウンド再生をserviceにやらせて、 UIスレッドは再生や停止のボタンと、再生しているファイルを表示する感じでしょうか? 僕の知り合いの知り合いができたパソコン一台でお金持ちになれるやり方 役に立つかもしれません グーグルで検索するといいかも『ネットで稼ぐ方法 モニアレフヌノ』 WPF3O
「Stringの比較はequalを使え」とか 「配列のループならforより拡張forの方が10倍速い」みたいな、 他言語から入って来ると気が付かなくてハマりがちなことをまとめてるサイトとか本って無いでしょうか?
最近のトレンドを知らないけど、Effective Javaなんてどう?
やっぱり定番はEffectiveなのですね、ありがとうございます
今回追加されたAACのnavigationで画面遷移時にデータを渡したいときはどうしたらいいんですかね
どの解説記事も単に画面遷移できるってだけで、 BundleとかIntentにデータをつめる話が出てこないんですが
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開発の超初心者です VIDEO この動画の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にこんな感じで関数化して呼び出そうとしていますが、呼び出したときにアプリが落ちます。 ソースコードはこんな感じです 1 catchでググって。 2 GUIプログラミングの常識なんだけど、ビューに関する操作はメインスレッド以外からやると落ちる。 てかログに丁寧に出力してくれてるはずだから、それをちゃんと読む癖をつけた方がいい。
ありがとうございます。 catchで調べたらそれっぽいのが出てきたので、スクショのようにしました 作法的にはこれで合ってるのかなと。 これでビルドしようとしたところ、変数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でも例外処理にはならないのか?など疑問がてんこ盛りです。 まともなアプリ作るまで道のりが長いですね。 そこは嘘でも「教わったやり方でできました」って言っとけ
聞いてばかりで自分で調べないと胡座かいてて嫌がられると思ったので、情報は頂いて感謝してます、すみません JSONの方にも例外処理を入れましたらHttpUrlconnectionの例外でcatchしたメッセージも出てきましたね。 非同期処理にしてるから流れがややこしいんですかね? 一応解決はしたのでまた何か手を加えて学習を進めてみます。 ありがとうございました。 30年ほど昔の工業高校時代にマシン語とBASICで簡単なものを作った記憶がある また何か作ってみたいものだ。若い人たちに色々と教えてもらおう。 まずは本読んでサイトで勉強してタイピング練習だわい
非同期処理は、流れ(コンテキスト)が異なるから、例外機構を使えるか? 非同期処理の外側と、時間の進み方が異なるだろ
レーティングでちょうどいい感じの年齢設定にするにはどの質問にどう答えたらいいんだ
初心者です Android studio3.7.1のsound poolについて質問があります ボタンを押したら音が鳴るという仕組みを作りたいのですが、 sound poolが使えません(音源はraw内に追加済みです) mainacticityに sound poolと打ち込んでもエラーが出ます これは別途で何かインストールが必要なんでしょうか? 初心者なので表現の仕方がおかしいと思いますが答えていただけると助かります
プログラミングの前にググラビリティを向上させるべき
プログラミングの前にググラビリティの意味を正しく理解しよう
>>424 です 画像をクリックしたら音が出るという仕組みを作りたいです importにsoundpoolを追加したんですが、 button.setOnClickListener〜からエラーが発生してしまいます 言語はkotlinです どうすればいいでしょうか? 最初のbuttonというのは何かに置き換えたほうがいいでしょうか? >>430 コードです 今のところ画像をクリックする、画像をクリックすると表示されたカウンターが動作するという部分だけうまくいっています ご教授よろしくお願いします >>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に移行することをお薦めします。 で終わる長ったらしいものですが、どうにも意味が判らない。ググると沢山のページが出てきますが、 どれも似たり寄ったりで解決出来ません。う〜ん…
日本語が不自由っぽいけど 書いてある通りにすればいい
Build->Generate Signed Bundle /APK…をクリックして・APKを選択して Create new…からNew Key Storeの画面に行きますが、項目を入力してOKを押すとエラーです。 ダメですね… 他の海外サイトも読んでみましたがどうにもなりません。 何か下準備とか必要でしょうか?
macの環境は知らん keyStorePathのチルダ記号と、test,jksなのにエラーはtest.jjksになっているのが気になった 以上
たぶん 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 で… >自分に理解して実行するスキルはありませんでした。 と素直に書いてあります。 現在、無事に内部テストの公開開始待ちですが、 エラーが表示される問題自体は解決されていないので、 差し支えなければ翻訳して解決の手順をお教え下さい。 これから新しいアプリを最初から作る場合、言語は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 で書いたとおり、一瞬起動するんですよ。 エラーにはならないからエラー内容は書けません。 バカすぎて回答する気が失せた... 誰もビルドエラーの話なんかしておらん...
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 この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とか付かないんだけど、何かの拍子に付いてしまう。 多少なりとも開発の経験があるなら知っているハズ。判らないなら黙っておいて貰えますか?
>>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 審査が通るかドキドキですが、まぁ前のアプリが通ったので大丈夫でしょう♪ 何か付け間違えていたな。 >>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が持つ音量設定に影響されずにアプリ 独立の音量で出力する方法を御教示ください。 現在、 http://pastebin.com/qZzn8ZGk のようにしており、Android4.4.2のスマホ、Android6.1のタブレットでは意図 した通りの音量になってくれますが、Android9のスマホで「メディア音量」の 設定の影響を受ける(soundPool.playに渡した値に「メディア音量」の設定を 掛けた音量になる)ようです。 AudioAttributesのsetUsage()・setContentType()をいくつか試してみましたが、 ダメでした。 よろしくお願いいたします。 >>688 なるほど、ありがとうございます。挑戦してみます。 ゲームだと思って起動したら、勝手に彼女や上司に「死ね」ってメールを送るアプリを作ってみます。 審査員から多額の賠償請求かな。アメリカなので高めの。
第百六十八条の二 正当な理由がないのに、人の電子計算機における実行の用に供する目的で、次に掲げる電磁的記録その他の記録を作成し、又は提供した者は、三年以下の懲役又は五十万円以下の罰金に処する。
Android Studio 3.5.3でエミュレーター使って日本国内向けアプリを開発してるけど、 エミュレーターの動作言語を日本語にするにはどうしたらいいのでしょうか? そのままだと英語で動いてしまいます。 AVD Managerとかエミュレーター本体の設定を見ても、言語設定の項目が見当たりません。
下から上にスワイプしたらSettingが出てくるはずだから、Systemで言語を追加できる。
Androidエミュで、AVDから投げたUDPパケットのレスポンスが ・APIレベル23(Android6)だとUDP受信(DatagramSocket)可能 ・同じソースコードで、APIレベル28(Android9)のエミュだと受信不可能 になってしまう。パケットキャプチャしてみて、AVD側の受信ポートが開いていないっぽい感じ。 (Port unreachable) Android9のエミュで何かポート開けたりとかFWの設定する必要ありますか?? エスパー回答でも何でも求む!
>>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 その一言でもうね、低レベルな質問したの誰だよ? 「低レベル」と『低レベル』をかけた高度なギャグのつもりだよ☆
()なんて飾りです、偉い人にはそれがわからんのです!
スマホ本体のメモリ?キャッシュ?をアプリ内でクリアする方法ってありますか? 位置座標(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 今やってるアプリだとこんな感じで出ますね 明らかに自前で用意している画面なのでアップデート検知はアプリ側で実装するのが普通だと思ってました 外部ライブラリってライセンス周りめんどくさいのあるからあんまり使用したくないわ
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 とかが、サーバーではじかれる
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 レス、ありがとうございます。 >リリース画面のエラー表示の部分は 「おっ、それだ」と思ったのですが、違っていました。 このメッセージ下の「Android App Bundle」のリンク先も一通り廻って見まし たが見つかりませんでした。 それ機種によって全部同じになってることがあるとかないとか、、
ndkの中で、システムのプロパティを取得してその値でコードの挙動を変えたいのですが。 ググって__system_property_get を見つけましたが、いかにも隠してある関数で危険? シンボルの有無を確認してから呼ぶ、的なことをした方がいいですかね? それとも、これより良い方法ってありますかね?
>>828 そのヘッダに全部書いてあるじゃん 827 のドキュメントが更新されてんだろうから探せよ 趣味でAOSPのコードをビルドしようと思ったのですが、repo sync でチェックアウトしてみると ものすごく大きくて驚きました。 中でも .repo というディレクトリーが全体のサイズの半分近くを占めていて、実際には git の レポジトリ情報などを保持しているようですが、これってサイズを圧縮したりすることって できますかね? ちなみにビルドするだけなら .repo は消して構わないのかな? それともビルドが通らなくなる?. いずれにせよ一応保持しておきたい(コードの履歴などをみたい)のですが。
>>832 なるほど、と思い repo forall -c git gc を走らせました。結果: 変化なし ちなみに上のコマンドは各プロジェクトに相当する .git のあるフォルダを巡回したはず。 一方 >>831 に書きましたが、でかいのはトップにある .repo フォルダで、この下を覗くと プロジェクト名.git みたいなフォルダが大量にあって、こいつらがでかいです。 .gitはリポジトリのコピー。ビルドだけなら要らんがそれが無いと履歴が見れない。あきらめれ。
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ではどの環境でも実機が認識されているのでそのレベルの接続は出来て いるようです。 という漢字なんですが...
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 自己解決しました。 「他のアプリの上に重ねて表示」の権限を自分のアプリに設定したところ、アシスタントが表示されるようになりました。 それにしても、長いこと悩んでいたのですが、書き込んだら自分で解決できるのが不思議。