我在各种情况下使用Google地图的Xamarin.Android应用程序 - 例如,用户可以打开在地图上显示为折线的各种路径的详细信息。我不时会收到这个错误:
E/dalvikvm(13160): JNI ERROR (app bug): global reference table overflow (max=51200)
W/dalvikvm(13160): JNI global reference table (0x848a2008) dump:
W/dalvikvm(13160): Last 10 entries (of 51200):
W/dalvikvm(13160): 51199: 0x45a244d0 com.google.android.gms.maps.Projection
W/dalvikvm(13160): 51198: 0x45e5e9d8 com.google.android.gms.maps.model.LatLng
W/dalvikvm(13160): 51197: 0x45e5ea18 com.google.android.gms.maps.model.LatLng
W/dalvikvm(13160): 51196: 0x45e5ea58 com.google.android.gms.maps.model.LatLngBounds
W/dalvikvm(13160): 51195: 0x45e5ead8 com.google.android.gms.maps.model.VisibleRegion
W/dalvikvm(13160): 51194: 0x45f9bc28 com.google.android.gms.maps.Projection
W/dalvikvm(13160): 51193: 0x43975690 com.google.android.gms.maps.model.LatLng
W/dalvikvm(13160): 51192: 0x43975788 com.google.android.gms.maps.model.LatLng
W/dalvikvm(13160): 51191: 0x439757a8 com.google.android.gms.maps.model.LatLngBounds
W/dalvikvm(13160): 51190: 0x43975810 com.google.android.gms.maps.model.VisibleRegion
接下来是全球参考表的摘要。最大的项目总是:
1668 of com.google.android.gms.maps.model.LatLng (1668 unique instances)
...
378 of com.google.android.gms.maps.model.Polyline (378 unique instances)
...
44439 of com.google.android.gms.clearcut.a.h (44439 unique instances)
我知道Xamarin使用Managed Callable Wrappers来处理LatLng,Polyline和所有这些东西,所以我已经添加了围绕它们的处理逻辑。但真正的杀手呢:
com.google.android.gms.clearcut.a.h
我不知道这是什么(谷歌没有帮助),如何处置它,从而防止gref表溢出杀死我的应用程序。有什么想法吗?