2015-04-16 9 views
6

Ich benutze eine API in WordPress, um zu bekommen, wie viele Titel ich habe. Mein Code funktioniert gut für alle Android-Versionen außer 5.x. Wenn ich in meiner App einen Thread drehe, schließt es leider. Ich weiß nicht, was mit Android 5-Versionen nicht stimmt. Weiß jemand, was die Lösung ist?JNI ERKENNUNG FEHLER IN ANWENDUNG

Das ist mein logcat:

04-16 19:06:54.709 18828-18828/com.example.dmb.materialnews A/art﹕ art/runtime/check_jni.cc:65] JNI DETECTED ERROR IN APPLICATION: JNI CallVoidMethodV called with pending exception 'java.lang.IllegalStateException' thrown in void android.os.MessageQueue.nativePollOnce(long, int):-2 
04-16 19:06:54.709 18828-18828/com.example.dmb.materialnews A/art﹕ art/runtime/check_jni.cc:65]  in call to CallVoidMethodV 
04-16 19:06:54.709 18828-18828/com.example.dmb.materialnews A/art﹕ art/runtime/check_jni.cc:65]  from void android.os.MessageQueue.nativePollOnce(long, int) 
04-16 19:06:54.709 18828-18828/com.example.dmb.materialnews A/art﹕ art/runtime/check_jni.cc:65] "main" prio=5 tid=1 Runnable 
04-16 19:06:54.709 18828-18828/com.example.dmb.materialnews A/art﹕ art/runtime/check_jni.cc:65] | group="main" sCount=0 dsCount=0 obj=0x87d30ef0 self=0xb4f07800 
04-16 19:06:54.709 18828-18828/com.example.dmb.materialnews A/art﹕ art/runtime/check_jni.cc:65] | sysTid=18828 nice=-11 cgrp=apps sched=0/0 handle=0xb6fdeec8 
04-16 19:06:54.709 18828-18828/com.example.dmb.materialnews A/art﹕ art/runtime/check_jni.cc:65] | state=R schedstat=() utm=183 stm=41 core=3 HZ=100 
04-16 19:06:54.709 18828-18828/com.example.dmb.materialnews A/art﹕ art/runtime/check_jni.cc:65] | stack=0xbe0c8000-0xbe0ca000 stackSize=8MB 
04-16 19:06:54.709 18828-18828/com.example.dmb.materialnews A/art﹕ art/runtime/check_jni.cc:65] | held mutexes= "mutator lock"(shared held) 
04-16 19:06:54.709 18828-18828/com.example.dmb.materialnews A/art﹕ art/runtime/check_jni.cc:65] native: #00 pc 00004640 /system/lib/libbacktrace_libc++.so (UnwindCurrent::Unwind(unsigned int, ucontext*)+23) 
04-16 19:06:54.709 18828-18828/com.example.dmb.materialnews A/art﹕ art/runtime/check_jni.cc:65] native: #01 pc 00002e8d /system/lib/libbacktrace_libc++.so (Backtrace::Unwind(unsigned int, ucontext*)+8) 
04-16 19:06:54.709 18828-18828/com.example.dmb.materialnews A/art﹕ art/runtime/check_jni.cc:65] native: #02 pc 00248381 /system/lib/libart.so (art::DumpNativeStack(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, int, char const*, art::mirror::ArtMethod*)+68) 
04-16 19:06:54.709 18828-18828/com.example.dmb.materialnews A/art﹕ art/runtime/check_jni.cc:65] native: #03 pc 0022cd0b /system/lib/libart.so (art::Thread::Dump(std::__1::basic_ostream<char, std::__1::char_traits<char> >&) const+146) 
04-16 19:06:54.709 18828-18828/com.example.dmb.materialnews A/art﹕ art/runtime/check_jni.cc:65] native: #04 pc 000b189b /system/lib/libart.so (art::JniAbort(char const*, char const*)+582) 
04-16 19:06:54.709 18828-18828/com.example.dmb.materialnews A/art﹕ art/runtime/check_jni.cc:65] native: #05 pc 000b1fd5 /system/lib/libart.so (art::JniAbortF(char const*, char const*, ...)+60) 
04-16 19:06:54.709 18828-18828/com.example.dmb.materialnews A/art﹕ art/runtime/check_jni.cc:65] native: #06 pc 000b50e5 /system/lib/libart.so (art::ScopedCheck::ScopedCheck(_JNIEnv*, int, char const*)+1284) 
04-16 19:06:54.709 18828-18828/com.example.dmb.materialnews A/art﹕ art/runtime/check_jni.cc:65] native: #07 pc 000bc59f /system/lib/libart.so (art::CheckJNI::CallVoidMethodV(_JNIEnv*, _jobject*, _jmethodID*, std::__va_list)+30) 
04-16 19:06:54.709 18828-18828/com.example.dmb.materialnews A/art﹕ art/runtime/check_jni.cc:65] native: #08 pc 00063803 /system/lib/libandroid_runtime.so (???) 
04-16 19:06:54.709 18828-18828/com.example.dmb.materialnews A/art﹕ art/runtime/check_jni.cc:65] native: #09 pc 000776bd /system/lib/libandroid_runtime.so (android::NativeDisplayEventReceiver::dispatchVsync(long long, int, unsigned int)+40) 
04-16 19:06:54.709 18828-18828/com.example.dmb.materialnews A/art﹕ art/runtime/check_jni.cc:65] native: #10 pc 00077885 /system/lib/libandroid_runtime.so (android::NativeDisplayEventReceiver::handleEvent(int, int, void*)+80) 
04-16 19:06:54.709 18828-18828/com.example.dmb.materialnews A/art﹕ art/runtime/check_jni.cc:65] native: #11 pc 00010f6f /system/lib/libutils.so (android::Looper::pollInner(int)+482) 
04-16 19:06:54.709 18828-18828/com.example.dmb.materialnews A/art﹕ art/runtime/check_jni.cc:65] native: #12 pc 00011019 /system/lib/libutils.so (android::Looper::pollOnce(int, int*, int*, void**)+92) 
04-16 19:06:54.709 18828-18828/com.example.dmb.materialnews A/art﹕ art/runtime/check_jni.cc:65] native: #13 pc 000830c1 /system/lib/libandroid_runtime.so (android::NativeMessageQueue::pollOnce(_JNIEnv*, int)+22) 
04-16 19:06:54.709 18828-18828/com.example.dmb.materialnews A/art﹕ art/runtime/check_jni.cc:65] native: #14 pc 000b22d7 /system/framework/arm/boot.oat (Java_android_os_MessageQueue_nativePollOnce__JI+102) 
04-16 19:06:54.709 18828-18828/com.example.dmb.materialnews A/art﹕ art/runtime/check_jni.cc:65] at android.os.MessageQueue.nativePollOnce(Native method) 
04-16 19:06:54.709 18828-18828/com.example.dmb.materialnews A/art﹕ art/runtime/check_jni.cc:65] at android.os.MessageQueue.next(MessageQueue.java:143) 
04-16 19:06:54.709 18828-18828/com.example.dmb.materialnews A/art﹕ art/runtime/check_jni.cc:65] at android.os.Looper.loop(Looper.java:130) 
04-16 19:06:54.709 18828-18828/com.example.dmb.materialnews A/art﹕ art/runtime/check_jni.cc:65] at android.app.ActivityThread.main(ActivityThread.java:5832) 
04-16 19:06:54.709 18828-18828/com.example.dmb.materialnews A/art﹕ art/runtime/check_jni.cc:65] at java.lang.reflect.Method.invoke!(Native method) 
04-16 19:06:54.709 18828-18828/com.example.dmb.materialnews A/art﹕ art/runtime/check_jni.cc:65] at java.lang.reflect.Method.invoke(Method.java:372) 
04-16 19:06:54.709 18828-18828/com.example.dmb.materialnews A/art﹕ art/runtime/check_jni.cc:65] at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399) 
04-16 19:06:54.709 18828-18828/com.example.dmb.materialnews A/art﹕ art/runtime/check_jni.cc:65] at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194) 
04-16 19:06:54.709 18828-18828/com.example.dmb.materialnews A/art﹕ art/runtime/check_jni.cc:65] 
04-16 19:06:55.509 18828-18828/com.example.dmb.materialnews A/art﹕ art/runtime/runtime.cc:286] native: #08 pc 000b1a79 /system/lib/libart.so (art::JniAbort(char const*, char const*)+1060) 
04-16 19:06:55.509 18828-18828/com.example.dmb.materialnews A/art﹕ art/runtime/runtime.cc:286] native: #09 pc 000b1fd5 /system/lib/libart.so (art::JniAbortF(char const*, char const*, ...)+60) 
04-16 19:06:55.509 18828-18828/com.example.dmb.materialnews A/art﹕ art/runtime/runtime.cc:286] native: #10 pc 000b50e5 /system/lib/libart.so (art::ScopedCheck::ScopedCheck(_JNIEnv*, int, char const*)+1284) 
04-16 19:06:55.509 18828-18828/com.example.dmb.materialnews A/art﹕ art/runtime/runtime.cc:286] native: #11 pc 000bc59f /system/lib/libart.so (art::CheckJNI::CallVoidMethodV(_JNIEnv*, _jobject*, _jmethodID*, std::__va_list)+30) 
04-16 19:06:55.519 18828-18828/com.example.dmb.materialnews A/art﹕ art/runtime/runtime.cc:286] native: #17 pc 000830c1 /system/lib/libandroid_runtime.so (android::NativeMessageQueue::pollOnce(_JNIEnv*, int)+22) 
04-16 19:06:55.519 18828-18828/com.example.dmb.materialnews A/art﹕ art/runtime/runtime.cc:286] native: #08 pc 000b1a79 /system/lib/libart.so (art::JniAbort(char const*, char const*)+1060) 
04-16 19:06:55.519 18828-18828/com.example.dmb.materialnews A/art﹕ art/runtime/runtime.cc:286] native: #09 pc 000b1fd5 /system/lib/libart.so (art::JniAbortF(char const*, char const*, ...)+60) 
04-16 19:06:55.519 18828-18828/com.example.dmb.materialnews A/art﹕ art/runtime/runtime.cc:286] native: #10 pc 000b50e5 /system/lib/libart.so (art::ScopedCheck::ScopedCheck(_JNIEnv*, int, char const*)+1284) 
04-16 19:06:55.519 18828-18828/com.example.dmb.materialnews A/art﹕ art/runtime/runtime.cc:286] native: #11 pc 000bc59f /system/lib/libart.so (art::CheckJNI::CallVoidMethodV(_JNIEnv*, _jobject*, _jmethodID*, std::__va_list)+30) 
04-16 19:06:55.519 18828-18828/com.example.dmb.materialnews A/art﹕ art/runtime/runtime.cc:286] native: #17 pc 000830c1 /system/lib/libandroid_runtime.so (android::NativeMessageQueue::pollOnce(_JNIEnv*, int)+22) 
04-16 19:06:55.529 18828-18828/com.example.dmb.materialnews A/art﹕ art/runtime/runtime.cc:286] native: #04 pc 001fc499 /system/lib/libart.so (art::Object_wait(_JNIEnv*, _jobject*)+32) 
04-16 19:06:55.529 18828-18828/com.example.dmb.materialnews A/art﹕ art/runtime/runtime.cc:286] native: #04 pc 001fc471 /system/lib/libart.so (art::Object_waitJI(_JNIEnv*, _jobject*, long long, int)+36) 
04-16 19:06:55.529 18828-18828/com.example.dmb.materialnews A/art﹕ art/runtime/runtime.cc:286] native: #04 pc 001fc499 /system/lib/libart.so (art::Object_wait(_JNIEnv*, _jobject*)+32) 
04-16 19:06:55.529 18828-18828/com.example.dmb.materialnews A/art﹕ art/runtime/runtime.cc:286] native: #04 pc 001fc499 /system/lib/libart.so (art::Object_wait(_JNIEnv*, _jobject*)+32) 
04-16 19:06:55.529 18828-18828/com.example.dmb.materialnews A/art﹕ art/runtime/runtime.cc:286] native: #04 pc 001fc471 /system/lib/libart.so (art::Object_waitJI(_JNIEnv*, _jobject*, long long, int)+36) 
04-16 19:06:55.529 18828-18828/com.example.dmb.materialnews A/art﹕ art/runtime/runtime.cc:286] native: #04 pc 001fc471 /system/lib/libart.so (art::Object_waitJI(_JNIEnv*, _jobject*, long long, int)+36) 
04-16 19:06:55.529 18828-18828/com.example.dmb.materialnews A/art﹕ art/runtime/runtime.cc:286] native: #04 pc 001fc471 /system/lib/libart.so (art::Object_waitJI(_JNIEnv*, _jobject*, long long, int)+36) 
04-16 19:06:55.529 18828-18828/com.example.dmb.materialnews A/art﹕ art/runtime/runtime.cc:286] native: #04 pc 001fc471 /system/lib/libart.so (art::Object_waitJI(_JNIEnv*, _jobject*, long long, int)+36) 
04-16 19:06:55.529 18828-18828/com.example.dmb.materialnews A/art﹕ art/runtime/runtime.cc:286] native: #05 pc 000830c1 /system/lib/libandroid_runtime.so (android::NativeMessageQueue::pollOnce(_JNIEnv*, int)+22) 
04-16 19:06:55.529 18828-18828/com.example.dmb.materialnews A/art﹕ art/runtime/runtime.cc:286] native: #05 pc 000830c1 /system/lib/libandroid_runtime.so (android::NativeMessageQueue::pollOnce(_JNIEnv*, int)+22) 
04-16 19:06:55.529 18828-18828/com.example.dmb.materialnews A/art﹕ art/runtime/runtime.cc:286] native: #04 pc 001fc471 /system/lib/libart.so (art::Object_waitJI(_JNIEnv*, _jobject*, long long, int)+36) 
04-16 19:06:55.529 18828-18828/com.example.dmb.materialnews A/art﹕ art/runtime/runtime.cc:286] native: #04 pc 001fc471 /system/lib/libart.so (art::Object_waitJI(_JNIEnv*, _jobject*, long long, int)+36) 
04-16 19:06:55.529 18828-18828/com.example.dmb.materialnews A/art﹕ art/runtime/runtime.cc:286] native: #04 pc 001fc471 /system/lib/libart.so (art::Object_waitJI(_JNIEnv*, _jobject*, long long, int)+36) 
04-16 19:06:55.529 18828-18828/com.example.dmb.materialnews A/art﹕ art/runtime/runtime.cc:286] native: #04 pc 001fc471 /system/lib/libart.so (art::Object_waitJI(_JNIEnv*, _jobject*, long long, int)+36) 
04-16 19:06:55.529 18828-18828/com.example.dmb.materialnews A/art﹕ art/runtime/runtime.cc:286] native: #04 pc 001fc471 /system/lib/libart.so (art::Object_waitJI(_JNIEnv*, _jobject*, long long, int)+36) 
04-16 19:06:55.529 18828-18828/com.example.dmb.materialnews A/art﹕ art/runtime/runtime.cc:286] native: #04 pc 001fc471 /system/lib/libart.so (art::Object_waitJI(_JNIEnv*, _jobject*, long long, int)+36) 
04-16 19:06:55.529 18828-18828/com.example.dmb.materialnews A/art﹕ art/runtime/runtime.cc:286] native: #04 pc 001fc471 /system/lib/libart.so (art::Object_waitJI(_JNIEnv*, _jobject*, long long, int)+36) 
04-16 19:06:55.529 18828-18828/com.example.dmb.materialnews A/art﹕ art/runtime/runtime.cc:286] native: #04 pc 001fc471 /system/lib/libart.so (art::Object_waitJI(_JNIEnv*, _jobject*, long long, int)+36) 
04-16 19:06:55.529 18828-18828/com.example.dmb.materialnews A/art﹕ art/runtime/runtime.cc:286] native: #04 pc 001fc471 /system/lib/libart.so (art::Object_waitJI(_JNIEnv*, _jobject*, long long, int)+36) 
04-16 19:06:55.529 18828-18828/com.example.dmb.materialnews A/art﹕ art/runtime/runtime.cc:286] native: #04 pc 001fc471 /system/lib/libart.so (art::Object_waitJI(_JNIEnv*, _jobject*, long long, int)+36) 
04-16 19:06:55.529 18828-18828/com.example.dmb.materialnews A/art﹕ art/runtime/runtime.cc:286] native: #05 pc 000830c1 /system/lib/libandroid_runtime.so (android::NativeMessageQueue::pollOnce(_JNIEnv*, int)+22) 
04-16 19:06:55.529 18828-18828/com.example.dmb.materialnews A/art﹕ art/runtime/runtime.cc:286] native: #04 pc 001fc471 /system/lib/libart.so (art::Object_waitJI(_JNIEnv*, _jobject*, long long, int)+36) 
04-16 19:06:55.529 18828-18828/com.example.dmb.materialnews A/art﹕ art/runtime/runtime.cc:286] native: #04 pc 001fc471 /system/lib/libart.so (art::Object_waitJI(_JNIEnv*, _jobject*, long long, int)+36) 
04-16 19:06:55.529 18828-18828/com.example.dmb.materialnews A/art﹕ art/runtime/runtime.cc:286] native: #04 pc 001fc471 /system/lib/libart.so (art::Object_waitJI(_JNIEnv*, _jobject*, long long, int)+36) 
04-16 19:06:55.529 18828-18828/com.example.dmb.materialnews A/art﹕ art/runtime/runtime.cc:286] native: #04 pc 001fc471 /system/lib/libart.so (art::Object_waitJI(_JNIEnv*, _jobject*, long long, int)+36) 
04-16 19:06:55.529 18828-18828/com.example.dmb.materialnews A/art﹕ art/runtime/runtime.cc:286] native: #04 pc 001fc471 /system/lib/libart.so (art::Object_waitJI(_JNIEnv*, _jobject*, long long, int)+36) 
04-16 19:06:55.539 18828-18828/com.example.dmb.materialnews A/art﹕ art/runtime/runtime.cc:286] native: #04 pc 001fc471 /system/lib/libart.so (art::Object_waitJI(_JNIEnv*, _jobject*, long long, int)+36) 
04-16 19:06:55.539 18828-18828/com.example.dmb.materialnews A/art﹕ art/runtime/runtime.cc:286] native: #04 pc 001fc471 /system/lib/libart.so (art::Object_waitJI(_JNIEnv*, _jobject*, long long, int)+36) 
04-16 19:06:55.539 18828-18828/com.example.dmb.materialnews A/art﹕ art/runtime/runtime.cc:286] native: #04 pc 001fc471 /system/lib/libart.so (art::Object_waitJI(_JNIEnv*, _jobject*, long long, int)+36) 
04-16 19:06:55.539 18828-18828/com.example.dmb.materialnews A/art﹕ art/runtime/runtime.cc:286] native: #04 pc 001fc471 /system/lib/libart.so (art::Object_waitJI(_JNIEnv*, _jobject*, long long, int)+36) 
+0

Dies wird eine knifflige sein - es gibt keinen offensichtlichen Verweis in der Ablaufverfolgung zu * an * Ihres Codes, abgesehen von dem Paketnamen. –

+0

Ich habe sehr große Codes hier zu schreiben. Aber bei der Suche geht es um Materialdesign, aber ich weiß nicht, wie ich dieses Problem lösen kann. – Dauezevy

Antwort

9

Android 5.0+ verwendet eine andere virtuelle Maschine (bisher Dalvik, und jetzt ART). Diese neue VM ist mit JNI-Code viel strenger. Eine der jetzt vorgenommenen Prüfungen besteht darin, dass es nicht erlaubt ist, systemeigenen Code innerhalb einer Ausnahme aufzurufen.
Weitere Informationen finden Sie unter http://developer.android.com/training/articles/perf-jni.html#exceptions. Wenn Sie nicht der Autor der systemeigenen Bibliothek sind, muss der Autor sie korrigieren. In der Zwischenzeit können Sie möglicherweise den Aufruf der systemeigenen Aufrufe vermeiden, indem Sie die Ausnahmen von Java vermeiden. Wenn die Ausnahme in einer Bibliothek auftritt, die Sie nicht besitzen, ist dies unter Umständen nicht möglich ...

1

In meinem Fall war dieses Problem mit der Bibliothek Transitions Everywhere verbunden, als versucht wurde, ScrollView zu animieren. Und das Problem trat auf Samsung-Geräten auf.
Durch Entfernen dieses verzögerten Übergangs wurde das Problem behoben.

+1

Das gleiche hier. Dieser Absturz ereignete sich hauptsächlich bei ausgewählten Samsung-Geräten, aber ich konnte es beheben, indem ich die zugehörigen FragmentTransaction-Animationen entfernte. Ich nehme an, dass jede Animation, die mit einer möglicherweise großen Scrollview verbunden ist, problematisch sein könnte. – rpm

Verwandte Themen