2015-07-29 4 views
1

Я пишу программу, которая использует JNI, и отлично работает, когда я запускаю ее на своем компьютере, но она бросает UnsatisfiedLinkError, если я пытаюсь запустить ее на другом компиляторе, заявив, что он не может найти зависимые библиотеки. Я использую Eclipse, и я пробовал все (или много чего, в зависимости от того, что вы предпочитаете).UnsatisfiedLinkError (не может найти зависимые библиотеки)

Может ли кто-нибудь сказать мне, как это исправить?

ответ

1

Прежде всего, проверьте, скопировали ли вы все DLL, которые вы используете в своем проекте, в целевую систему.
Если ошибка по-прежнему происходит, кажется, что в вашей целевой системе отсутствует один или несколько DLL-файлов вашего JNI-DLL.

Загрузите Dependency Walker на другой компьютер и загрузите DLL, используемую вами с помощью Walker Dependency.
В нем перечислены все DLL, на которые ваша DLL опирается и даже показывает, отсутствует ли зависимость. Если что-то не хватает, скопируйте файлы из своей системы или загрузите их.

+0

Dependency Walker нашел кучу недостающих DLL, все они начинаются с «API-MS-WIN-» или «EXT-MS-WIN-». Обратите внимание, что я компилирую свой проект как в 32-битном, так и в 64-битном. – TheRandomLabs

+0

Убедитесь, что вы установили на обеих компьютерах одни и те же распространяемые vC++. Если проблема по-прежнему сохраняется, попробуйте собрать все зависимости вашего проекта на своем компьютере и скопировать их в цель. Аналогичная проблема возникает у вас [здесь] (http://stackoverflow.com/questions/17023419/win-7-64-bit-dll-problems) – Rikan

+0

Я протестировал ее на ноутбуке Windows 10 и Windows 10 VM , Оба они имеют одни и те же распространенные VC++. – TheRandomLabs

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