2013-09-14 3 views
0

Я пытаюсь создать Android-модуль, который использует FMOD для Android, используя NDK (мне нужно, чтобы это было родным, потому что я также использую сторонний open-source C++ библиотека, которая должна взаимодействовать с FMOD, что прекрасно работает). Я могу скомпилировать все с помощью NDK OK, но когда я создаю проект Unity, я всегда получаю исключение DLLNotFoundException, если я использую общую библиотеку FMOD. Обратите внимание, что библиотека, которую я создал, отлично работает, если я не включаю вызовы FMOD, поэтому я уверен, что проигрыватель Unity не может найти общие папки FMOD.Использование сторонней общей библиотеки на Android с NDK с Untiy3D

Это мой плагин код:

extern "C" { 
#endif 

    static int mycount = 0; 
    int FooTest(){ 

     unsigned int version; 
     FMOD::System* system_; 

     //Init 
     FMOD_RESULT result = FMOD::System_Create(&system_); 
     if (result != FMOD_OK) return -1; 

     result = system_->getVersion(&version); 
     if (result != FMOD_OK) return -1; 

     if (version < FMOD_VERSION) 
     { 
      //printf("Error! You are using an old version of FMOD %08x. This program requires %08x\n", version, FMOD_VERSION); 
      return -1; 
     } 
     result = system_->init(32, FMOD_INIT_NORMAL, 0); 
     if (result != FMOD_OK) return -1; 

     return mycount++; 
    } 


#ifdef __cplusplus 
} 
#endif 

Если я закомментируйте все вещи FMOD, возвращаемый счетчик увеличивается и отображается на экране. Всякий раз, когда я строю с вызовами FMOD, я получаю «DLLNotFoundException: FooTest»

Я включил библиотеки fmodex.so и fmodexL.so как в мой каталог plugins/android, так и в корень моего проекта, и я проверил что они присутствуют в папке lib/armeabi сгенерированного APK.

Если кто-либо заинтересован, я могу также опубликовать файлы Android, которые я использую для создания моей общей библиотеки.

ответ

0

. Библиотеки .so должны быть включены в корневую директорию проекта для их поиска.

Смежные вопросы