jni: bad arguments passed to 錯誤

最近遇到了一個bad arguments passed to的崩潰,這個是art那邊的打印reflection.cc#434,在參數解析的時候出現了問題,是參數不對導致的。結合上一個log就能快速知道具體是那個參數的類型不對。

  • 參數無法解析
LOG(ERROR) << "Internal error: unresolvable type for argument type in JNI invoke: " << m->GetTypeDescriptorFromTypeIdx(type_idx) << "\n" << self->GetException()->Dump();
  • 引用類型(類型不對)
LOG(ERROR) << "JNI ERROR (app bug): attempt to pass an instance of " << argument->PrettyTypeOf() << " as argument " << (i + 1) << " to " << m->PrettyMethod();
  • 布爾類型(只接受JNI_TRUE JNI_FALSE)
LOG(ERROR) << "JNI ERROR (app bug): expected jboolean (0/1) but got value of " << arg << " as argument " << (i + 1) << " to " << m->PrettyMethod();
  • Bye類型(越界)
LOG(ERROR) << "JNI ERROR (app bug): expected jbyte but got value of " << arg << " as argument " << (i + 1) << " to " << m->PrettyMethod();
  • Char類型(越界)
LOG(ERROR) << "JNI ERROR (app bug): expected jchar but got value of " << arg << " as argument " << (i + 1) << " to " << m->PrettyMethod();
  • Short類型(越界)
LOG(ERROR) << "JNI ERROR (app bug): expected jshort but got value of " << arg << " as argument " << (i + 1) << " to " << m->PrettyMethod();
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章