I niedawno zauważyłem, że kiedy załadować WebView opiera się kod z pliku (za pomocą aktywa lub katalogu lokalnego), The WebView wydostaną pamięć po destroy() wywoływana jest metoda . Zawęziłem to do problemu z odniesieniami. Program/przeglądarka tworzy kopie oryginalnego widoku i traci referencje w tabeli JNI - w wyniku tego program ulega awarii po 512 wpisach.Android WebView Przeciek pamięci podczas korzystania z aktywów
Widziałem ten artykuł, ale nie przecieka WebView fix nie wydaje się do pracy z HTML w aktywach lub folderów zewnętrznych.
Problem nie istnieje gdy aplikacja jest w całości oparte serwer; ale potrzebuję aplikacji, aby móc "zsynchronizować" dane i zaktualizować repozytorium offline tymi widokami.
Dalsze informacje: I podjęły WebViews i umieścić je w ViewPager aby umożliwić przewijanie. Ten problem nie istniał w wersji 3.2.4/1, ale pojawił się w wersji 4.0.3. Dostaję dużo ostrzeżeń JNI (nie udało się znaleźć wpisu) i nadal istnieją po zniszczeniu widoków. Przyjrzałem się temu przez hprof i zauważyłem, że HTML pozostaje w pozostałych zmiennych.
Jakiekolwiek światło, jak poprawić to zachowanie, byłoby docenione.
Edit:
specyfiki na temat katastrofy
Failed adding to JNI local ref table (has 512 entries)
"Thread-375" prio=5 tid=15 RUNNABLE
| group="main" sCount=0 dsCount=0 obj=0x41504a90 self=0x1a9cf80
| sysTid=10314 nice=0 sched=0/0 cgrp=default handle=27159240
| schedstat=(455083000 66745000 774) utm=30 stm=15 core=3
at android.content.res.AssetManager.readAsset(Native Method)
at android.content.res.AssetManager.access$700(AssetManager.java:35)
at android.content.res.AssetManager$AssetInputStream.read(AssetManager.java:573)
at dalvik.system.NativeStart.run(Native Method)
UPDATE:
Aby rozwiązać ten problem, trzeba załadować z karty SD lub innego mechanizmu przechowywania. Błąd jest trwały, gdy załadowany jest plik Javascript, nie wiem, czy jest on poprawiony w Chrome, ale nie wydaje się być poprawiony w przeglądarce w najnowszym systemie operacyjnym.
spróbuj załadować pliki z kodu karty SD: webtemp.loadUrl ("file: //" + Environment.getExternalStorageDirectory() + "/assetssd/example.html); –
Czy jesteś poważny ...? Ja byłem osobą który wysłał tę odpowiedź e-mailem>.> –
Żart dnia !! dziękuję za zidentyfikowanie !! :)! Mój przyjaciel Tak, masz rację! :) Przepraszam za to! Nie widziałem pytanego nazwiska podczas komentowania !! ans is out !!, ale powyższy błąd "local ref table" został rozwiązany, ale "E/dalvikvm-heap (16169): Brak pamięci w alokacji 2310160-bajtów." Błąd nadchodzi !!! –