2016-01-05 12 views
13

Zaraz po uruchomieniu aplikacji moja aplikacja miażdży się bez komunikatu o błędzie na urządzeniu. Dzieje się tak tylko na Samsung Note 1 (przynajmniej nie można testować na wszystkich urządzeniach), ale nie na Motorola Moto G lub Galaxy s4mini. Jedyną wskazówką, którą otrzymuję, jest debugger. Wkleiłem to poniżej. Co dokładnie się dzieje i dlaczego powoduje awarię tylko na niektórych urządzeniach?Usterka gry libgdx na niektórych urządzeniach

Edycja: ulega awarii również po powrocie do aplikacji z menu "uruchomione aplikacje". Uwaga 1 ma zainstalowany CyanogenMod. Może to ma coś wspólnego z awarią.

Edycja2: Kolejna obserwacja: uwaga 1 przydziela tylko połowę pamięci, tak jak pozostałe dwa urządzenia. Czy ma to coś wspólnego z awarią?

01-05 17:00:16.212 13486-13513/com.mygdx.myGame.android D/dalvikvm: Trying to load lib /data/app-lib/com.mygdx.myGame.android-2/libgdx-freetype.so 0x42441a58 
    01-05 17:00:16.222 13486-13513/com.mygdx.myGame.android D/dalvikvm: Added shared lib /data/app-lib/com.mygdx.myGame.android-2/libgdx-freetype.so 0x42441a58 
    01-05 17:00:16.222 13486-13513/com.mygdx.myGame.android D/dalvikvm: No JNI_OnLoad found in /data/app-lib/com.mygdx.myGame.android-2/libgdx-freetype.so 0x42441a58, skipping init 
+0

Mam Samsung Galaxy Note 1 z zainstalowanym CyanogenMod, myślisz, że mogę jakoś pomóc? Chciałbym przynajmniej spróbować go zainstalować, aby sprawdzić, czy działa na moim telefonie. Dostaję dziwne awarie od Skype'a z poprzednim niestandardowym ROM-em, podczas gdy ten nowy ROM, który zainstalowałem, działa doskonale. – EpicPandaForce

Odpowiedz

7

Funkcja "JNI_OnLoad" nie jest istotne dla aplikacji na Androida. To nawet nie jest błąd. Twój problem pochodzi z innej części twojego kodu. Nawet jeśli nie masz tej funkcji, Twój program powinien działać normalnie.

Odniesienia do JNI_OnLoad, które mogą być pomocne - Link 1 | Link 2 | Link 3

Jest sposób naprawić to chociaż-

spróbuje użyć ndk-gdb go naprawić.

Referencje dla ndk-gdb - developer.android.com | Stackoverflow

Mam ten problem w większości projektów, nad którymi pracowałem. Nie ma nic wspólnego z awarią aplikacji na Androida.

Jest coś jeszcze w aplikacji, która ulega awarii. Kilka wskazówek do rozważenia, które pomogą Ci debug-

  1. Sprawdź Playstore (jeśli jej na playstore) dla dzienników (co dokładnie jest błąd). Dają ślad stosu, który pomaga w debugowaniu.

  2. Jeśli nie jest to na Playstore, jedynym sposobem na przejście do przodu jest zdalne debugowanie na urządzeniu mobilnym, które podaje błąd.

  3. Miałem takie doświadczenia i to NAJBARDZIEJ CZASU z powodu zmiany interfejsu API. Chodzi mi o to, że interfejsy API zmieniłyby się z jednej wersji Androida na drugą (KitKat na Lollipop - jest wiele przełomowych zmian!) Sprawdź to raz. Większość moich aplikacji powodowała wiele problemów z tego powodu.

  4. Niektóre telefony komórkowe są surowe, jeśli chodzi o transakcje DB (sqlite lub cokolwiek innego korzystasz z telefonu). Chodzi mi o to, że w jednej z aplikacji, kiedy DB nie był zamknięty pod koniec wszystkich transakcji, aplikacja została zamknięta w większości telefonów komórkowych Samsung & Samsung. Chociaż działało bardzo dobrze na większości innych telefonów.

Mam nadzieję, że to pomaga :) Szczęśliwe kodowanie!

+1

Dziękuję za poinformowanie mnie, nie martw się o "błąd". Po zastąpieniu tekstur atlasami Tetxure błąd zniknął w magiczny sposób. Przynajmniej myślę, że to był powód ... – brumbrum

+1

Dobrze wiedzieć, magia pomogła: D Szczęśliwe kodowanie! :) – bozzmob

2

Uwaga do siebie: „Zawsze używaj asset manager i faktura atlasy”

ciągu rozwija ostatecznie zastąpione wszystkie tekstury z fakturą atlasów i połączono z zarządzającego aktywami. W ogóle nie zmieniłem żadnej logiki. W jakiś sposób aplikacja przestała działać. Nie potrafię tego wyjaśnić, ale wiem, że atlas zarządzający aktywami i atlasy tekstur zrobiły jakąś sztuczkę.

Powiązane problemy