2017-04-20 1 views
0

내 MainActivity.java를 유효하지 jfieldID는 MainActivity.java에서 native_setup으로 전화하면 아래 오류가 표시됩니다.는 개체에 대한

01 23,516,

04-20 02:07:02.505 26064 26064 I TestJni+++++++: native init over! 
04-20 02:07:02.522 26064 26064 W art  : Before Android 4.1, method android.graphics.PorterDuffColorFilter android.support.graphics.drawable.VectorDrawableCompat.updateTintFilter(android.graphics.PorterDuffColorFilter, android.content.res.ColorStateList, android.graphics.PorterDuff$Mode) would have incorrectly overridden the package-private method in android.graphics.drawable.Drawable 
04-20 02:07:02.576 26064 26064 I TestJni+++++++: native setup!lpMainA=0x790e761e70,status=100 
04-20 02:07:02.588 26064 26064 F art  : art/runtime/java_vm_ext.cc:470] JNI DETECTED ERROR IN APPLICATION: jfieldID long com.example.android.testjni.MainActivity.mNativeMainA not valid for an object of class java.lang.Class<com.example.android.testjni.MainActivity> 
04-20 02:07:02.588 26064 26064 F art  : art/runtime/java_vm_ext.cc:470]  in call to SetLongField 
04-20 02:07:02.588 26064 26064 F art  : art/runtime/java_vm_ext.cc:470]  from void com.example.android.testjni.MainActivity.native_setup() 
.....

하지만 com_example_native_add에서 com_example_native_setup를 호출 할 경우, 모든 것이 잘 될 것입니다. 나는 정말로 혼란 스럽다.

도움이 될 것입니다!

답변

0

해결 : native_setup을 정적으로 선언해서는 안됩니다.