Как правильно импортировать библиотеку Android с кодом JNI?

фон

Я сделал крошечный SDK для обработки растровых изображений с помощью JNI (link здесь).

Он имеет только 2 проекта: пример проекта (демонстрирует использование SDK) и сам SDK .

проект SDK-это проект Android, и он включает в себя некоторый код C/C++.

проблема

по какой-то причине, хотя, когда я создал проект, все прошло хорошо, теперь, когда я пытаюсь получить проект библиотеки и импортировать его в Eclipse, а затем я открываю файл CPP, который я сделал, я вижу много ошибок на нем, как таковых:

enter image description here

вопрос

почему это происходит? Как правильно импортировать проект? Могу ли я помочь тому, кто использует это, чтобы иметь возможность импортировать его красиво?

Я попытался создать совершенно новый проект с JNI и просто скопировал (тщательно) файлы из моей библиотеки, и он скомпилирован отлично, но это не хороший способ импорт проекта...

1 ответов


эта ошибка eclipse происходит часто, и ваше решение (запуск пустого проекта, а затем добавление файлов) является самой быстрой работой, и мы все используем его, когда дело доходит до этого. Другим решением было бы удалить c nature и Android nature и снова добавить эти натуры в проект (часто это работает).

когда новый проект будет создан, Eclipse добавит его природу и цепочки инструментов. Если вы импортируете старый проект, эти toolchains / natures могут быть плохими импортированный.

для проекта, содержащего c и c++, вам нужно будет иметь cnature и ccnature, определенные в вашем ".файл проекта. Для android вам нужна природа Android. Для компиляции android вам понадобится com.андроид.gcc как цепочка инструментов, определенная в вашем .cproject файл.

в зависимости от версии ADT / CDT / Eclipse , значение из цепочек инструментов .cproject отличается, поэтому их нелегко импортировать с машины на машину.

Я думаю, что вы у вас буря ошибок потому что.файл cproject был создан неправильно .

редактировать

после дальнейших исследований разработчика Android, более быстрый способ обойти ограничение Eclipse, вызванное тем, как native nature добавляется в проект, можно сделать в следующих шагах:

  1. удалить из ".проект "файл " cnature"и " ccnature"

    <nature>org.eclipse.cdt.core.cnature</nature>
    <nature>org.eclipse.cdt.core.ccnature</nature>
    
  2. удалить ".cproject " файл из eclipse рабочее место

  3. удалить все сгенерированные файлы и папки : libs, obj, gen и bin

  4. повторно добавьте встроенную поддержку android через контекстное меню "Android tools"

спасибо разработчика Android.