471

Android SDK/API 環境は初めてです。プロット/チャートを描こうとしているのは初めてです。3 つの無料ライブラリを使用して、エミュレータでさまざまな種類のサンプル コードを実行しようとしましたが、レイアウト画面に何も表示されません。logcat は次のメッセージを繰り返します。

W/Trace(1378): nativeGetEnabledTags からの予期しない値: 0
 I/Choreographer(1378): 55 フレームスキップしました! アプリケーションがメイン スレッドで処理しすぎている可能性があります。

ライセンスされたライブラリの評価コピーに関するサンプル コードを実行したところ、問題は解決せず、チャートは機能しました。

4

20 に答える 20

287

他の人が上で答えたように、「55フレームをスキップしました!」アプリケーションで重い処理が行われていることを意味します。

私の場合、アプリケーションに重いプロセスはありません。私はすべてを二重および三重にチェックし、少し重いと思われるプロセスを削除しました。

スケルトンだけが残るまで、フラグメント、アクティビティ、ライブラリを削除しました。しかし、それでも問題は解決しませんでした。リソースを確認することにしましたが、リソースのサイズを確認するのを忘れていたため、使用しているアイコンと背景がかなり大きいことがわかりました。

したがって、上記の回答がどれも役に立たない場合は、リソース ファイルのサイズも確認してください。

于 2015-08-30T10:48:10.597 に答える
18

アプリのパフォーマンスを向上させるために、次の戦略を使用してみてください。

  • 可能であれば、マルチスレッド プログラミングを使用します。スマートフォンのコアが 1 つであっても、パフォーマンス上のメリットは非常に大きいです (プロセッサに 2 つ以上のコアがある場合、スレッドは異なるコアで実行できます)。アプリのロジックを UI から分離すると便利です。Java スレッド、AsyncTask または IntentService を使用します。これを確認してください
  • Android 開発 Web サイトのその他のパフォーマンスに関するヒントを読み、それに従ってください。ここで確認してください
于 2013-08-10T04:47:13.430 に答える
8

私は専門家ではありませんが、Android アプリケーションから Web サーバーにデータを送信しようとしたときに、このデバッグ メッセージを受け取りました。AsyncTask クラスを使用してバックグラウンドでデータ転送を行いましたが、サーバーから結果データを取得するために、UI を同期させる AsyncTask クラスの get() メソッドを使用しました。これは、UI が長時間待機することを意味します。したがって、私のアドバイスは、アプリがすべてのネットワーク指向のタスクを別のスレッドで実行するようにすることです。

于 2015-09-04T06:50:15.977 に答える
0

私のアプリにも同じ問題がありました。しかし、カードのリストとテキストを表示する以外には何もしていませんでした。バックグラウンドで何も実行されていません。しかし、いくつかの調査の後、カードの背景に設定された画像が小さい(350kb)にもかかわらず、これを引き起こしていることがわかりました。次に、 http://romannurik.github.io/AndroidAssetStudio/index.htmlを使用して、画像を 9patch 画像に変換しました 。
これは私にとってはうまくいきました。

于 2016-01-28T16:11:04.667 に答える
0

グリッド レイアウトで多くの描画可能な png ファイルを使用するアプリを開発しているときに、同じ問題が発生しました。また、コードを可能な限り最適化しようとしました..しかし、うまくいきませんでした..次に、それらのpngのサイズを縮小しようとしました..そして、それが完全にうまく機能していると思います..だから私の提案は減らすことです描画可能なリソースのサイズ..

于 2016-05-20T04:39:26.020 に答える
-1

アプリケーションで async/await 機能を使用している場合、これは正常です。

于 2020-08-16T07:14:51.920 に答える