Androidプログラミング質問スレ revision54
■ このスレッドは過去ログ倉庫に格納されています
>>340 AndroidStudioがサポートしているバージョンが26.0.2以降だからじゃない? そのバージョンがインストールされてなくてエラーになってるみたいだけど。 >>339 targetSDKversionが26になってないんだろう >>339 >>345 あ、すまん。ちゃんと見てなかった。それも制限受けるって書いてあるね >>345-347 あーtargetSdkVersionが26(=Oreo)から対象なんだね 自分のアプリ見たら24だった 多分アプリが使えなくなるまで24から上げないかも… 今年の秋から26以上じゃないとアプリ更新できなくなるらしいけど ttps://developers-jp.googleblog.com/2017/12/improving-app-security-and-performance.html >2018 年 8 月: 新しいアプリで、ターゲット API レベル 26(Android 8.0)以降が必須になります。 >2018 年 11 月: 既存のアプリのアップデートで、ターゲット API レベル 26 以降が必須になります。 >2019 年以降: 毎年、targetSdkVersion の要件が上がります。Android の各デザート リリースの後 1 年以内に、新しいアプリとアプリのアップデートは、対応する API レベル以降にターゲットを指定することが義務づけられます。 >>350 そうするとアップデート検知は明示的インテントにして逃れろという事なのか まあアプリのアップデートなんて頻繁にするし仕方ないのかな >>333 >>348 Windowsも糞Linuxも糞 じゃあ何ならいいのだ? >>340 ですが >>343 26.0.2のインストールはしてます、問題起こるんでわざと外して古いのにしたのが下のエラーです >>344 それの -Djdk.util.zip.ensureTrailingSlash=false 記述はもうやってたんです 起動時IDEのエラーはなくなりました No server to server request.というエラーもでてる。 やっぱりubuntuの32bitではは無理なのかな。。 >>353 毎年アップデートもできないようなコンシューマ以外の アプリは出て行けってことでそ edittextで2文字ぐらい入力されたときに予測を出して選択するようにするにはどうすればいいのでしょうか? スマホ自体の予測変換ではなくて、その入力される枠に対してこちらが用意したリストから予測を出したいです 例)大学名を入力する枠で、「とう」と入力されたら「東京大学」「東京工業大学」など よろしくお願いします 入力中の「とう」を「東」と判定はできないけど、そこはまだIME側の対応だろうと考えます。 >>358 ありがとうございます 求めていたものでした OreoからBroadcastReceiverでNEW_OUTGOING_CALLが捕捉出来ない時があるんだけど 自分のXperiaだけなのかな? 時間置いた後の1回目が捕捉出来ない事がある その後は使えるけどDozeが絡んでるのかな メーカーがカスタマイズした省エネモードとかやっかいだよな 結局ホワイトリストに入れてもらうしか対処がない OS設定の省電力機能の対象外にする設定のある場所とか HuaweiとかASUSの省電力、自動起動設定とか 普通のユーザーに分かる訳ないと思うんだけどなぁ Googleにとってはこれを乗り越えられない開発者はいらないって事なのか グーグルのエープリールフールがしっかりと動作してやがる 余計なことしてないで本業をだな Android6.0で実機デバッグをしています。 アプリをFLAG_KEEP_SCREEN_ONで常に画面表示でずっと動かしてると、 たまーにアプリがホームボタンを押したのと同じ状態で隠れている状態になる時があります。 実際画面も点きっぱなしなので、右下のメニューボタンを押すとアプリがあり、エラーも無く動きます。 この場合はどんな原因があって、アプリが隠れてしまうのでしょうか? (WiFiなどはOFFにして、他のアプリは特に動作した形跡も見られません。) MainActivity#onCreate()、onResume()、onWindowFocusChanged()にて以下でナビゲーションバーとステータスバーを非表示にしています。 View decorView = getWindow().getDecorView(); int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION | View.SYSTEM_UI_FLAG_FULLSCREEN | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY; decorView.setSystemUiVisibility(uiOptions); 1.アプリ起動時にナビゲーションバー、ステータスバーが一旦表示されフェードアウトして隠れるのですが、隠れる動作をなくす(最初から両方のバーが隠れている)よう方法はありますでしょうか。 2.オプションメニューやスピナーをタップすると、両方のバー半透明の黒でなく通常の黒状態で表示されますが、抑制する方法はありますでしょうか。 https://developer.android.com/training/system-ui/visibility.html を参考にView.OnSystemUiVisibilityChangeListenerに上記を組み込みましたがうまくいきませんでした。 そこはOSバージョンによって挙動が変わったりして面倒臭い >>368 2.は俺も前やったな。通常のメニュー表示すると、没入モード解除されて回避方法ないような気がする。 だから、メニュー使わずにダイアログフラグメント使ってメニューっぽく仕上げて回避したな。俺は。 ダイアログフラグメントも普通に表示すると、没入モード解除されるから フラグ設定して表示すればよかった。 ほんとAndroidはクソすぎて嫌になるわ。 Activityがバックグラウンドになった時、フォアグラウンドに復帰させる方法ってありますか? 調べても検知するだけで、復帰方法までは見つからなかったので質問させて貰いました。 バックグラウンドになった瞬間にアクティブにするってどんなゾンビですか >>372 そんな事アプリが勝手にやったらウイルス作れちゃうじゃん 根本的なUIの改善を考えなされ >>373-374 確かに暴走した時にキル出来なくて、 スマホの再起動くらいでしか戻れない迷惑なアプリですよね・・・ 考え直してみます なんかここで質問されるのって普通じゃ思いつかないような変な使い方が多いような気がする笑 普通の使い方ならば質問してないでgglksとか言われて終わら されるような気がするので正しく機能しているということではw ただ普通の使い方がAPIの更新という名目の元に毎年 ドラスティックに変更されてしまうので付いていけないというか 付き合いたくないってのはあるかな・・・ Gradleってなんでオンラインじゃないとだめなんだろ? なにしてるんだろ、まさかこちらのソース送ってるとかないよね mavenからダウンロードしてるからだろ オフラインでも使えるぞ >>373-374 考えてみたけど、思いつかなかったです・・・。 症状としては、数時間後にアプリが勝手にバックグラウンド(ホームボタンを押した状態)に移動してしまい、 隠れてしまうのを回避したいです。 根本的な解決だと移動する原因を突き止めることなのでしょうが、 アプリが勝手に隠れる原因って何でしょうか? アプリはFLAG_KEEP_SCREEN_ONで常時画面ONにしていて、 他にアプリが起動した様子は無く、WiFiも切っています。 >>382 電池の最適化から除外してもそうなるの? >>382 そのフラグって起動している間は画面をオフにしないってだけでは? 常時そのアプリをアクティブにするものとは違ってたかと >>383 ホワイトリストには入れて無かったです。 >>384 画面ONで他のアプリが動かなければ、常時アクティブになるのかなと思ってました。 ゾンビ化させるつもりで、onPause()の時にonResume()を呼び出してみたけど、ダメでした。 @Override protected void onPause() { super.onPause(); onResume(); } >>385 ならそのアプリを最適化から除外した上でどうなるか確認しよう。 ありがとうございます 確かに電池の最適化なんて何やってるかわからないから、 まず除外して動かしてみます 普通は勝手にバックグラウンドには行かないし、スリープ復帰後もフォアグラウンドのままだし その端末がスリープに入るとアプリがすべてバックグラウンドに行く仕様とか (それも変な仕様だけど。または変なアプリが入ってるとか) クラッシュしてるんじゃ? バックグラウンドに行く原因を特定するほうが先だと思うが startForegroundServiceでレシーバー常駐させてても 受信しない事あるんだが… フォアグラウンドサービスはかなり殺されにくくなるだけで 絶対に殺されないものではないけど 途中で殺されてたりしない? Logcatか何かで分かるのかな? 分かってもどう対策すればいいのやら… google playで公開しているアプリのユーザーが、 とても良いアプリだからdonateしたいんだが的なことを英語のメールで送ってきたんですが、 非消費型アプリ内課金でdonate機能を付けることは問題ないんですかね つまり、何も機能追加とかはしないけど単にお金を貰うだけということになるんですが もしくはそういう機能のあるアプリって既にgoogle playで公開されてたりしますか google的には30%の手数料収入が入ってくるわけだから禁止する理由もないのかな >>395 課金含めて作成したことはないですが、ずっと使ってるghost commanderって無料のファイラーにはdonation機能ありますね。 paypalに遷移するのでgoogleに一部落ちるってことはないのではないかと思われますが。 https://i.imgur.com/JHl7KIs.png https://i.imgur.com/9Mwcvgu.png アプリ内課金までGoogleに取られたら堪らないな あーgoogleに手数料取られない形のアプリ内課金もあるんですねー とりあえずdonate機能追加したわ。これで大金持ちやな そういえばGoogleは寄付と課金は別に考えてたな ブログとかwebサイトでも作ってそこにdonate機能つけて、アプリからそこにリンク貼ればいいんじゃね Googleは10%じゃなかったっけ? リンゴと窓が30%で。 10%でも高すぎると思うんだけさぁ。 AndroidStudio 3.0.1を使用しています。 Android Profilerにてメモリ使用量を確認したところ、「Native」が開始直後は10MB程度から、数時間後に160MBまで増えているところまではわかりました。 ただ、このNativeの何が増えているのかはわかりませんでした。 ([Dump Java heap]で開始直後と数時間後を比較すると、FinalizerReferenceやbyte[]は1.5倍程度にしか増えていませんでした) この場合、何を見れば良いのでしょうか? よろしくお願いします。 画面はこんな感じです。 http://fast-uploader.com/transfer/7078879864621.jpg Retained Size 49248559Byte ≒ 47MByte 使用ってことでいいのかな? ただ上のグラフだとNativeが増えて、Total 192MBのメモリを使用しているけども。 >>393 >>396 俺も似たようなレビューを数件貰ってたから、広告非表示や機能追加で課金を検討してたけどPayPal経由で寄付実装なんてのもあったのか Googleに怒られるかと思ってた Android Studioで大きな画像を表示してピンチイン・アウトをしたいと思い、 https://qiita.com/satoshinew/items/a5fa3711d76429159dcb これを使いたいのですけど説明の意味がわからないので解説してください。 (Android Studioの設定は完了して「Hello World」の文字は表示されてます) まず、導入の方法は2つあるようです。 「ライブラリプロジェクトをインポートする」場合、 https://github.com/satoshinew/GestureTransformableView/tree/master/GestureTransformableView このページのどれをどうすればインポートできるのでしょうか? 「gesturetransformableview.jarを直接libsに突っ込む」場合 https://github.com/satoshinew/GestureTransformableView/tree/master/GestureTransformableViewSample/libs このページには「android-support-v4.jar」「gesturetransformableview.jar」「picasso-2.2.0.jar」 と3つのjarがありますが 「gesturetransformableview.jar」だけをクリックして次の画面でダウンロードすればいいのでしょうか? (ちなみに、Picassoというのは大きな画像を取り込める機能をもつライブラリ?のようですが このPicassoも使いたいと思ってます。 このページにある「picasso-2.2.0.jar」をDLして突っ込むとPicassoも使えるようになるのでしょうか?) そして次の ------------------------------------------ xmlで宣言する場合は 〜 (コード) 〜 直接書いちゃう人は 〜 (コード) 〜 ------------------------------------------ についてですが 「xmlで宣言する場合」というのは「activity_main.xml」のところに書けばいいのでしょうか 「直接書いちゃう人は」というのは何をどこに直接なのでしょうか よろしくお願いします。 >>409 ライブラリプロジェクトのインポートやlibsやjarについて 詳しく書いてある本教えてください。 >>410 こんな短期間でやり方変わっちゃうんですか? 公式に書いてあるんだからまずはそれを読むこと そして4年は短期間ではない そもそもAndroid Studioじゃないんじゃねえの 4年前に最新のeclipaeでやったらうまくいくかもよ Androidの世界で短期間ってせいぜい半年くらいじゃないの みなさんありがとうございます 広大なマップの上を移動していくゲームのように 大きな画像を無劣化で取り込みたいです 普通にimageviewで入れると勝手に小さくリサイズされて荒くなるけど リサイズなしで取り込むにはどうしたらいいでしょうか 経験ある方教えてください https://developer.android.com/studio/intro/index.html この公式のガイド見てもよくわからないです 画像全体のサイズにもよるけど、簡単なようで難しいのでないか 端末画面のサイズ超えそう それよりメモリオーバーしそう 画像を表示させるだけでいいならBitmapRegionDecoderで必要な範囲だけ読み込む それを元にゲームを作るのなら最初からゲームエンジンを使ったほうがいい Android ProfilerのMEMORYを見ていると、 GC発生毎にNativeが20〜50Byteほど増えるのですが、 GCの発生回数カウンタみたいな物はあるのでしょうか? >417 エスパーしてリソースフォルダから読み込んでるとするとnodpiフォルダを作って そんなかに入れとけば拡縮されないよ ASで新規プロジェクトでMapを選んで作成した場合 build.gradleで dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation 'com.android.support:appcompat-v7:27.1.0' implementation 'com.google.android.gms:play-services-maps:12.0.1' testImplementation 'junit:junit:4.12' androidTestImplementation 'com.android.support.test:runner:1.0.1' androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1' } 'com.android.support:appcompat-v7:27.1.0'の部分に赤の破線が出てしまいます。 通常のプロジェクト作成で自分でimplementation 'com.google.android.gms:play-services-maps:12.0.1'を 追加した場合も同じです。 エラーの内容の詳細を見ると次のようになっています。 All com.android.support libraries must use the exact same version specification (mixing versions can lead to runtime crashes). Found versions 27.1.0, 26.1.0. Examples include com.android. support:animated-vector-drawable:27.1.0 and com.android.support:support-media-compat:26.1.0. There are some combinations of libraries, or tools and libraries, that are incompatible, or can lead to bugs. One such incompatibility is compiling with a version of the Android support libraries that is not the latest version (or in particular, a version lower than your targetSdkVersion). すべてのcom.android.supportライブラリは、まったく同じバージョン仕様を使用する必要があります (バージョンを混在させるとランタイムクラッシュにつながる可能性があります)。 バージョン27.1.0、26.1.0が見つかりました。 例にはcom.androidがあります。 サポート:アニメーションベクタ描画可能:27.1.0、com.android.support:support-media-compat:26.1.0。 互換性がない、またはバグにつながるライブラリやツールやライブラリの組み合わせがいくつかあります。 このような非互換性の1つは、Androidサポートライブラリの最新バージョン(または特にtargetSdkVersionよりも低いバージョン)ではないバージョンのAndroidサポートライブラリでコンパイルされています。 特に26.1.0を指定した記述もしていないのになぜこうなってしまうのでしょうか? 環境構築になにか問題があるのでしょうか? どうすればこの赤破線は消せますか? AS3.0でプロジェクト新規作成したみたが26で作られて特にエラーはでないな AS3.1は糞だからゴミ箱に入れてAS3.0でやり直したらいいんじゃね AS3.1.1で試してみたが確かにエラーがでるね appcompat-v7:26.1.0に変えて、compileSdkVersionとtargetSdkVersionを26に変えればいいんじゃね 自作ホームアプリを起動したあとに他のアプリから呼び出すとactivityが二重に起動してしまいます。 launcherModeはsingleTaskに設定しているのですが、原因がわかりません。 どなたか原因わかる方いるでしょうか? >>425 implementation 'com.android.support:appcompat-v7:27.1.0' implementation 'com.google.android.gms:play-services-maps:12.0.1' の依存でコンフリクトが起きているようで上にあるよう26に戻すか、オレのアプリは特にクラッシュしないので特に気にしていない >>429 それらを26にして破線を消すことができました ありがとうございます 実機で実行した時になぜかクラッシュするようなので3.0を入れて試してみます AS3.1が出たばかりで初心者にはタイミングが悪い ASの所為でもなく、敢えて言えば個々のライブラリが悪い。 けれど、この手の問題は良く発生するから、 implementation 'com.github.bumptech.glide:glide:4.6.1', { exclude group: 'com.android.support' } という逃げ方があるのは覚えておく。 カウンタを時間に変換したいと思っていますが、 SimpleDateFormat():スレッドセーフでは無い String.format():すごく遅い 複数スレッドでたくさん時間に変換したいので、スレッドセーフかつ速い変換って何が良いのでしょう? ググってもデメリットの説明ばかりで、代替え案が出てこないので教えてください。 Dateは確かにmutableだけど、DateFormat使うに当たってスレッドセーフが必要なケースってあるか? 非同期処理の確認でSystem.nanoTime()で、実行時間を見てます。 この為に同期処理にってのもナンセンスですし・・・。 いやいやw その処理のどこにスレッドセーフが必要ですか? ■ このスレッドは過去ログ倉庫に格納されています
read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる