2

MapViewアプリケーションで ( ではなく) v2 を使用していますMapFragmentが、メモリ リークが発生しています。Activity コンテキストを MapView コンストラクターに渡すと、リークが発生します。Application Context を MapView コンストラクターに渡すと、メモリ リークはなくなりますが、MapView が含まれている ScrollView をスクロールすると、MapView のパフォーマンスが低下し始めます。

リークが発生している場所のスナップショットを次に示します。

ここに画像の説明を入力

関連するコードMapViewは次のとおりです。

public class MapView extends android.widget.FrameLayout {
  private final com.google.android.gms.maps.MapView.b gD;

  static class b extends com.google.android.gms.dynamic.a<com.google.android.gms.maps.MapView.a> {
    private final android.content.Context mContext;
    // Here's the Context MapView is leaking

  }

  static class a implements com.google.android.gms.dynamic.LifecycleDelegate {
    // More stuff in here
  }
}

私はMapView数週間いじっていましたが、それを a で正しく動作させようとしましたがScrollView、役に立ちませんでした。私はそれをあきらめようとしています。

また、snapshot()最近追加された方法は、私が既に試したのでオプションではなく、マップの信頼できるスナップショットが得られません。これに関する未解決の質問がここにあり、別の関連する未解決の質問がここここにありますが、すべて回答されていません。

4

4 に答える 4

2

フラグメント内で使用していますか?このバグに関連している可能性があります https://code.google.com/p/android/issues/detail?id=185902

于 2015-09-10T06:30:31.963 に答える
2

私が取り組んでいたプロジェクトでは、同様の問題がありました。ビューホルダー内でmapViewを使用していました。解決策は、onPause を呼び出してから、mapview で onDestroy を呼び出すことでした。その後、メモリリークは観察されませんでした。

于 2015-07-24T09:14:46.247 に答える