Трабл в получении Java-классов java-библиотеки в нативном коде посредством Jni?
=================================================================================

 Собственно дано:  
  

1. Java-библиотека с реализацией нужного функционала. (в том числе, в ней есть несколько классов методы которых отмечены как нативные).  
  

2. Библиотека на плюсах, использующая функционал java-либы и реализующая нативные методы из нее. Все это с использованием Jni.  
  

3. Есть android-приложение, в котором нужно все это использовать.  
  
  

Java-либа была подключена в эклипсовсокм проекте, и в java-коде приложения я могу инстанцировать и использовать объекты классов из j-библиотеки. Но не могу использовать эти классы в нативном коде — классы просто не находятся (FindClass возвращает NULL). Jni-зависимый код работает (например, могу достучаться до MainActivity и попользовать его в нативе). Jni была инициализирована из MainActivity.  
  

Возможно, это из-за того, что классы были загружены разными ClassLoader'ами (на сколько я себе представляю этот процесс в Java).  
  

Кто уже сталкивался с такой проблемой? Может быть есть решение данной проблемы?  
  

Переносить инициализацию jni в java-библиотеку из кода самого приложения очень не хочется (ибо это создаст зависимость java-либы от плюсового кода). 

 Вполне возможно, что из-за ClassLoader-ов, ведь это проявляется даже без JNI. В Java-коде такой класс тоже не будет найден, пока не будет явно указан ClassLoader (Class.forName(«package.Class», true, myLoader)).   

Если я не ошибаюсь, то System.loadLibrary() загружает либу в контексте того класслоадера, который загрузил класс, вызывавший эту функцию. Так что вполне возможно, ваша J-либа и ваш основной код были загружены из разных класслоадеров, и System.loadLibrary был вызван из класслоадера с кодом — тогда библиотека не найдет JNI-методы, а JNI — не найдет библиотеку.