問題タブ [android-strictmode]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - Ksoap2 が Android 3.0 で動作せず、NetworkOnMainThreadException を取得する
Ksoap2 は Android 3.0 では動作しません。Logcat は NetworkOnMainThreadException を示します:
android - Android StrictMode InstanceCountViolation
ここに記載されているように、開発中に StrictMode を有効にしてアプリを実行しています。下位プラットフォーム バージョンの場合は StrictMode で、 何を考えればよいかわからないというエラー メッセージに気付きました。参照も見つかりません。
とのandroid.os.StrictMode$InstanceCountViolation
値を取得します。instances
limit
インスタンス=3; 制限=2
今私は疑問に思っています:
- A) 制限はどのように計算されますか
- B) そのような違反が実際にどのように発生する可能性があり、それから私は回避行動を調べます.
何か案は?
android - 誤検知を報告する Android StrictMode
私は自分のアプリケーションを StrictMode で実行して、潜んでいる可能性のある隠れた問題をチェックしようとしています。私が遭遇した問題の 1 つは、ContentResolver を使用しているときに Leaked DatabaseConections が誤検出されるように見えることです。
いくつかの実験の後、問題は次の 2 行のコードに単純化されました。
上記の 2 行により、次の StrictMode 違反が生成されます。
これは、Cursor が contentProvider によって返されたという事実に固有のものであると想定しています (したがって、直接の SQLite カーソルではありません)。
これが実際に誤検知であるか、それとも本当に漏れやすいカーソルがあるかどうか、誰かが洞察を持っていますか?
android - Androidハニカム:AsyncTaskを使用していて厳密モードを使用していない場合でもNetworkOnMainThreadException?
Android 3.0 アプリでNetworkOnMainThreadExceptionが発生しました。これを見つけた解決策を探していますが、これを正しく理解していれば、デフォルト設定では厳密モードはオフになっています。
また、すべてのネットワーク アクセスが にあるAsyncTask
ため、とにかくこの例外の意味がわかりません。
では、これを防ぐにはどうすればいいのか、今とても必死です...
よろしく、クラゲ
編集:
このブログ エントリは、AsyncTask で十分であると述べていますが、少なくとも StrictMode ポイントを明確にしています。
解決:
StrictMode をオフにしました (おそらくいくつかの設定を保持した方がよいでしょうが、気にすることはできませんでした...):
その後、「java.lang.RuntimeException: This thread forbids HTTP requests」に遭遇しましたが、こちらで解決策を見つけました。AndroidHttpClient
Android 2.0以降のアプリで使用したときはうまくいったので、少し混乱しています...
ソリューション、パート 2
結局のところ、AsyncTask を使用するのは良いアイデアでしたが、間違った使い方をするとまったく役に立ちませんでした。つまり、strict モードの反応には何の問題もありませんでした。聞くべきでしたか?;)
デフォルトで Honeycomb で有効になっていることを知っておくとよいでしょう。
android - StrictMode + Analytics
Android用のGoogleAnalyticsを使用していますが、StrictModeをオンにすると、次のようなメッセージがたくさん表示されます。
それを無視できますか?また、tracker.trackingPageView(...)をAsyncTaskに入れようとしました-同じ結果です。
StrictModeの設定は次のとおりです。
助けていただければ幸いです。よろしくお願いします。マイク
android - サブアクティビティを数回開くと、破棄されているにもかかわらず InstanceCountViolation が発生する
RecordView
画像、撮影日時、緯度/経度情報などのレコードの詳細を表示するために呼び出される下位レベルのアクティビティを持つプロジェクトに取り組んでいます。カメラを操作してジオタグを付け、exif データにアクセスしようとするのではなく、位置リスナーを実装して、画像が最初に撮影された場所 (ボタンを押したとき) を取得しようとしています。このアプローチは機能します-データベース内のレコードを正しく表示および更新するために自分の場所を取得します(後でビューに戻ると、場所が最初から表示されます)。ただし、現在の状態から戻って、RecordView
さらに 2 つ (任意の組み合わせ) を入力すると、プログラムはエラーでクラッシュしますInstanceCountViolation
(完全なエラーを以下に再掲します)。の生涯メソッドをオーバーライドするとRecordView
それぞれが呼び出されたときに表示するには、再度呼び出される前に破棄されていることがわかります。つまり、常に 1 つ以上RecordView
存在するようには見えません。
だから私の質問はこれに要約されます:そのエラーはどこから来て、どうすれば修正できますか?
破壊されたことについて何か嘘をついていますか?LocationListener がどこかに座っていて、問題を引き起こしていますか? 偽のエラーを提供している可能性があるのは無関係ですか?
また、ハードコードされた恐ろしい修正を行い、RecordView
許可されているインスタンスの上限を引き上げる必要がありますか? または、別のアプローチを探し続けますか (例として、PendingIntent.getBroadcast(...)
呼び出しを使用して単一の更新を要求しようとしています)?
参考までに、このエラーは 3.1 のエミュレーターと実際のタブレット (Xoom、3.1) で発生しています。リスナーの更新コードをコメントアウトすると、クラッシュを回避できるようです (編集 2 : 私はそれについて間違っていたようです)。リスナーに関連するコードを以下に示します (クラス内の public メソッドupdateLocation
内にありRecordView
ます)。
完全なエラー:
編集:
決めたことは2つ。
1 つ目は、Logcat がアクティビティの破棄を示している場合、RecordView
アクティビティLocationListener
が正しく切断されていることです (破棄されていますか? とにかく null です)。ただし、リスナーは墓の向こうから更新されているようです。つまり、上位レベルのアクティビティ画面で GPS 更新に関するトースト メッセージが表示され、GPS 情報が更新されたように見えることがあります。
RecordView
2 つ目は、アプリ全体ではなく強制終了のように見えることです。アプリのメイン チャンクは、基本的に最小化されているようです。
編集2:
最近、新しいアクティビティを使用して設定画面を追加しましたが、これには と同じInstanceCountViolation
エラーがありRecordView
ます。エラーが発生するためにアクティビティで何も変更する必要がないことを確認しました。数回開くだけで済みます。メイン アクティビティからサブ アクティビティを開く方法の例を以下に示します。
だから今、インテントがアクティビティの作成と削除を処理する方法に問題があるのではないかと思っています。
android - StrictMode の MapActivity が機能しない - ヘルプ
Android 開発者のブログでの Tim Bray の記事「New Gingerbread API: StrictMode」を読んだ後、自分のプロジェクトでそれを使い始めることにしました。問題が発生する前に、パフォーマンスの問題をキャッチできるようにしたいと考えています。
私の問題は、MapActivity を読み込もうとするたびにアプリが停止することですが、StrictMode が有効になっている場合のみです。コードのない単純なアクティビティでも死にます。
MapActivity で StrictMode を正常に使用した人はいますか? もしそうなら、トリックは何ですか?
LogCat からの出力は次のとおりです。
アクティビティコードは次のとおりです: (余分なものがあることは知っていますが、どの標準メソッドが実行されているかを確認したかったのです)
レイアウトは次のとおりです。
android - CursorLoader を使用して現在のアクティビティを終了すると、StrictMode が DatabaseObjectNotClosedException をスローする
CursorLoader
コンテンツ プロバイダーからの URIを使用して を作成し、マップに入力する非常に基本的な例を使用しています。すべてがスムーズに機能しますが、そのアクティビティを終了するとDatabaseObjectNotClosedException
、StrictMode によってスローされます。が Cursor を扱うことを理解しているCursorLoader
ので、自分で閉じてはいけません。では、なぜこれが起こるのですか?
ListFragment を使用している場合、この問題は発生しませonLoaderReset()
んadapter.swapCursor(null)
。しかし、メソッドのマップ フラグメント (またはリストを持たない他の種類のフラグメント) で何をすべきonLoaderReset()
でしょうか? 返されたカーソルへの参照を保持していないため、現時点では何もしていません。
android - 2.3より前のStrictMode
2.3より前のStrictModeを有効にすることをグーグルで検索していましたが、有用なものが見つかりませんでした。私が見つけたのは、StrictModeが2.3で導入され、リフレクションを使用して、このような厳密なモードがあるかどうかを確認できることだけでした。
しかし、2.3より前のバージョンで厳密モードを有効にする方法はありますか?たとえば、Fragments apiは3.0用ですが、コードに含まれているfragments apiライブラリでは、1.6以降のすべてのバージョンでフラグメントを使用するオプションがあります。ストリクトモードにこのようなものはありますか?または、2.3より前のバージョンで厳密モードを使用するための回避策はありますか?
ありがとう
android - AndroidWebViewがStrictMode違反を引き起こします
StrictModeがWebViewの作成について非常に大きな不満を言っていることに気づきました。WebViewオブジェクトの起動パフォーマンスを向上させる方法はありますか?onCreate()メソッドでXMLからインスタンス化しています。
多くのStrictMode警告の最初のものは次のとおりです。