Hacktoberfest 2026: die Issues, die Maintainer für den Oktober markiert haben – offen und einsteigerfreundlich. Hacktoberfest-Issues durchsuchen

JNI Exception when accessing static fields of some Android classes

Offen
#728 1 Kommentar 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Anfängerfreundlichkeit
30/100
Issue-Typ
Bug
Klarheit
Muss geklärt werden
Aktivitätsstatus
Veraltet
Tech-Stack
android, cpp
Bereich
mobile-dev

Rechercherichtung

Reproduziere den Absturz auf Android API 21 oder 23 mit ContactsContract.Data.EXTRA_ADDRESS_BOOK_INDEX und verfolge anschließend den JNI-Zugriff von tns::FieldAccessor::GetJavaField über GetStaticObjectField bis zu Runtime.java. Die Aufgabe ist abgeschlossen, wenn die aufgeführten statischen Felder nicht mehr den JNI DETECTED ERROR auslösen und der Zugriff auf ihre Werte erhalten bleibt.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

bug severity: low
Tell us about the problem

Attempting to access some static constants of certain classes will result in the following exception:
JNI DETECTED ERROR IN APPLICATION: static jfieldID X not valid for class Y

Known conflicting classes and fields:

Please provide the following version numbers that your issue occurs with:
  • Runtime(s): 2.5
Did the error happen while the app was being constructed? (buildtime error)

C++ Stacktrace

03-20 10:08:31.054 14495-14495/com.tns.android_runtime_testapp A/art: art/runtime/java_vm_ext.cc:410] JNI DETECTED ERROR IN APPLICATION: static jfieldID 0x707ff280 not valid for class java.lang.Class<android.provider.ContactsContract$Data>
03-20 10:08:31.054 14495-14495/com.tns.android_runtime_testapp A/art: art/runtime/java_vm_ext.cc:410]     in call to GetStaticObjectField
03-20 10:08:31.054 14495-14495/com.tns.android_runtime_testapp A/art: art/runtime/java_vm_ext.cc:410]     from java.lang.Object com.tns.Runtime.callJSMethodNative(int, int, java.lang.String, int, boolean, java.lang.Object[])
03-20 10:08:31.054 14495-14495/com.tns.android_runtime_testapp A/art: art/runtime/java_vm_ext.cc:410] "main" prio=5 tid=1 Runnable
03-20 10:08:31.054 14495-14495/com.tns.android_runtime_testapp A/art: art/runtime/java_vm_ext.cc:410]   | group="main" sCount=0 dsCount=0 obj=0x740842a0 self=0xb4cf6500
03-20 10:08:31.054 14495-14495/com.tns.android_runtime_testapp A/art: art/runtime/java_vm_ext.cc:410]   | sysTid=14495 nice=0 cgrp=default sched=0/0 handle=0xb6f04b34
03-20 10:08:31.054 14495-14495/com.tns.android_runtime_testapp A/art: art/runtime/java_vm_ext.cc:410]   | state=R schedstat=( 1323742611 224979275 776 ) utm=106 stm=26 core=0 HZ=100
03-20 10:08:31.054 14495-14495/com.tns.android_runtime_testapp A/art: art/runtime/java_vm_ext.cc:410]   | stack=0xbe7d4000-0xbe7d6000 stackSize=8MB
03-20 10:08:31.054 14495-14495/com.tns.android_runtime_testapp A/art: art/runtime/java_vm_ext.cc:410]   | held mutexes= "mutator lock"(shared held)
03-20 10:08:31.054 14495-14495/com.tns.android_runtime_testapp A/art: art/runtime/java_vm_ext.cc:410]   native: #00 pc 00370e01  /system/lib/libart.so (art::DumpNativeStack(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, int, char const*, art::ArtMethod*, void*)+160)
03-20 10:08:31.054 14495-14495/com.tns.android_runtime_testapp A/art: art/runtime/java_vm_ext.cc:410]   native: #01 pc 0035046f  /system/lib/libart.so (art::Thread::Dump(std::__1::basic_ostream<char, std::__1::char_traits<char> >&) const+150)
03-20 10:08:31.054 14495-14495/com.tns.android_runtime_testapp A/art: art/runtime/java_vm_ext.cc:410]   native: #02 pc 0025a725  /system/lib/libart.so (art::JavaVMExt::JniAbort(char const*, char const*)+740)
03-20 10:08:31.054 14495-14495/com.tns.android_runtime_testapp A/art: art/runtime/java_vm_ext.cc:410]   native: #03 pc 0025adfd  /system/lib/libart.so (art::JavaVMExt::JniAbortV(char const*, char const*, std::__va_list)+64)
03-20 10:08:31.054 14495-14495/com.tns.android_runtime_testapp A/art: art/runtime/java_vm_ext.cc:410]   native: #04 pc 000fd1d1  /system/lib/libart.so (art::ScopedCheck::AbortF(char const*, ...)+32)
03-20 10:08:31.054 14495-14495/com.tns.android_runtime_testapp A/art: art/runtime/java_vm_ext.cc:410]   native: #05 pc 00114ab1  /system/lib/libart.so (art::ScopedCheck::CheckFieldAccess(art::ScopedObjectAccess&, _jobject*, _jfieldID*, bool, art::Primitive::Type)+452)
03-20 10:08:31.054 14495-14495/com.tns.android_runtime_testapp A/art: art/runtime/java_vm_ext.cc:410]   native: #06 pc 001164d5  /system/lib/libart.so (art::CheckJNI::GetField(char const*, _JNIEnv*, _jobject*, _jfieldID*, bool, art::Primitive::Type)+524)
03-20 10:08:31.054 14495-14495/com.tns.android_runtime_testapp A/art: art/runtime/java_vm_ext.cc:410]   native: #07 pc 00116a6f  /system/lib/libart.so (art::CheckJNI::GetStaticObjectField(_JNIEnv*, _jclass*, _jfieldID*)+30)
03-20 10:08:31.055 14495-14495/com.tns.android_runtime_testapp A/art: art/runtime/java_vm_ext.cc:410]   native: #08 pc 00501870  /data/app/com.tns.android_runtime_testapp-1/lib/arm/libNativeScript.so (_JNIEnv::GetStaticObjectField(_jclass*, _jfieldID*)+60)
03-20 10:08:31.055 14495-14495/com.tns.android_runtime_testapp A/art: art/runtime/java_vm_ext.cc:410]   native: #09 pc 00501818  /data/app/com.tns.android_runtime_testapp-1/lib/arm/libNativeScript.so (tns::JEnv::GetStaticObjectField(_jclass*, _jfieldID*)+56)
03-20 10:08:31.055 14495-14495/com.tns.android_runtime_testapp A/art: art/runtime/java_vm_ext.cc:410]   native: #10 pc 0048bea4  /data/app/com.tns.android_runtime_testapp-1/lib/arm/libNativeScript.so (tns::FieldAccessor::GetJavaField(v8::Isolate*, v8::Local<v8::Object> const&, tns::FieldCallbackData*)+7292)
03-20 10:08:31.055 14495-14495/com.tns.android_runtime_testapp A/art: art/runtime/java_vm_ext.cc:410]   native: #11 pc 0035e70c  /data/app/com.tns.android_runtime_testapp-1/lib/arm/libNativeScript.so (tns::CallbackHandlers::GetJavaField(v8::Isolate*, v8::Local<v8::Object> const&, tns::FieldCallbackData*)+56)
03-20 10:08:31.055 14495-14495/com.tns.android_runtime_testapp A/art: art/runtime/java_vm_ext.cc:410]   native: #12 pc 0042483c  /data/app/com.tns.android_runtime_testapp-1/lib/arm/libNativeScript.so (tns::MetadataNode::FieldAccessorGetterCallback(v8::Local<v8::String>, v8::PropertyCallbackInfo<v8::Value> const&)+2052)
03-20 10:08:31.055 14495-14495/com.tns.android_runtime_testapp A/art: art/runtime/java_vm_ext.cc:410]   native: #13 pc 007ac9b7  /data/app/com.tns.android_runtime_testapp-1/lib/arm/libNativeScript.so (???)
03-20 10:08:31.055 14495-14495/com.tns.android_runtime_testapp A/art: art/runtime/java_vm_ext.cc:410]   native: #14 pc 0084fd1f  /data/app/com.tns.android_runtime_testapp-1/lib/arm/libNativeScript.so (v8::internal::Object::GetPropertyWithAccessor(v8::internal::LookupIterator*)+262)
03-20 10:08:31.055 14495-14495/com.tns.android_runtime_testapp A/art: art/runtime/java_vm_ext.cc:410]   native: #15 pc 0086c79b  /data/app/com.tns.android_runtime_testapp-1/lib/arm/libNativeScript.so (v8::internal::Object::GetProperty(v8::internal::LookupIterator*)+186)
03-20 10:08:31.055 14495-14495/com.tns.android_runtime_testapp A/art: art/runtime/java_vm_ext.cc:410]   native: #16 pc 007b0859  /data/app/com.tns.android_runtime_testapp-1/lib/arm/libNativeScript.so (v8::internal::LoadIC::Load(v8::internal::Handle<v8::internal::Object>, v8::internal::Handle<v8::internal::Name>)+84)
03-20 10:08:31.055 14495-14495/com.tns.android_runtime_testapp A/art: art/runtime/java_vm_ext.cc:410]   native: #17 pc 007b370f  /data/app/com.tns.android_runtime_testapp-1/lib/arm/libNativeScript.so (v8::internal::Runtime_LoadIC_Miss(int, v8::internal::Object**, v8::internal::Isolate*)+478)
03-20 10:08:31.055 14495-14495/com.tns.android_runtime_testapp A/art: art/runtime/java_vm_ext.cc:410]   native: #18 pc 00000098   (???)
03-20 10:08:31.055 14495-14495/com.tns.android_runtime_testapp A/art: art/runtime/java_vm_ext.cc:410]   at com.tns.Runtime.callJSMethodNative(Native method)
03-20 10:08:31.055 14495-14495/com.tns.android_runtime_testapp A/art: art/runtime/java_vm_ext.cc:410]   at com.tns.Runtime.dispatchCallJSMethodNative(Runtime.java:1021)
03-20 10:08:31.055 14495-14495/com.tns.android_runtime_testapp A/art: art/runtime/java_vm_ext.cc:410]   at com.tns.Runtime.callJSMethodImpl(Runtime.java:903)
03-20 10:08:31.055 14495-14495/com.tns.android_runtime_testapp A/art: art/runtime/java_vm_ext.cc:410]   at com.tns.Runtime.callJSMethod(Runtime.java:890)
03-20 10:08:31.055 14495-14495/com.tns.android_runtime_testapp A/art: art/runtime/java_vm_ext.cc:410]   at com.tns.Runtime.callJSMethod(Runtime.java:874)
03-20 10:08:31.055 14495-14495/com.tns.android_runtime_testapp A/art: art/runtime/java_vm_ext.cc:410]   at com.tns.Runtime.callJSMethod(Runtime.java:866)
03-20 10:08:31.055 14495-14495/com.tns.android_runtime_testapp A/art: art/runtime/java_vm_ext.cc:410]   at com.tns.gen.android.view.View_OnClickListener.onClick(android.view.View$OnClickListener.java:-1)
03-20 10:08:31.055 14495-14495/com.tns.android_runtime_testapp A/art: art/runtime/java_vm_ext.cc:410]   at android.view.View.performClick(View.java:5204)
03-20 10:08:31.055 14495-14495/com.tns.android_runtime_testapp A/art: art/runtime/java_vm_ext.cc:410]   at android.view.View$PerformClick.run(View.java:21153)
03-20 10:08:31.055 14495-14495/com.tns.android_runtime_testapp A/art: art/runtime/java_vm_ext.cc:410]   at android.os.Handler.handleCallback(Handler.java:739)
03-20 10:08:31.055 14495-14495/com.tns.android_runtime_testapp A/art: art/runtime/java_vm_ext.cc:410]   at android.os.Handler.dispatchMessage(Handler.java:95)
03-20 10:08:31.055 14495-14495/com.tns.android_runtime_testapp A/art: art/runtime/java_vm_ext.cc:410]   at android.os.Looper.loop(Looper.java:148)
03-20 10:08:31.055 14495-14495/com.tns.android_runtime_testapp A/art: art/runtime/java_vm_ext.cc:410]   at android.app.ActivityThread.main(ActivityThread.java:5417)
03-20 10:08:31.055 14495-14495/com.tns.android_runtime_testapp A/art: art/runtime/java_vm_ext.cc:410]   at java.lang.reflect.Method.invoke!(Native method)
03-20 10:08:31.055 14495-14495/com.tns.android_runtime_testapp A/art: art/runtime/java_vm_ext.cc:410]   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
03-20 10:08:31.055 14495-14495/com.tns.android_runtime_testapp A/art: art/runtime/java_vm_ext.cc:410]   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
03-20 10:08:31.055 14495-14495/com.tns.android_runtime_testapp A/art: art/runtime/java_vm_ext.cc:410] 
Did the error happen while the app was executing? (runtime error)

Yes.

Please tell us how to recreate the issue in as much detail as possible.

accessing android.provider.ContactsContract.Data.EXTRA_ADDRESS_BOOK_INDEX anywhere in code crashes the app.

Tested on Genymotion Emulators: API 21, API 23
Tested on Real Nexus 5 Device: API 23

Vorherrschende Sprache
C++
Sterne
563
Forks
144
Ø Merge
10 Std. 46 Min.
Gemergte PRs (30 T.)
14

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus NativeScript/android

Alle Issues in NativeScript/android

Ähnliche Issues

Weitere Issues zu C++

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.