2015-12-08 2 views
2

Я пытаюсь скомпилировать собственный код с помощью экспериментального плагина. Этот код ссылается на заголовочные файлы, которые находятся в другом месте В старые добрые дни Android.mk я просто добавлял LOCAL_C_INCLUDES и указывал его на расположение файлов заголовков.Как включить файлы заголовков с использованием экспериментального Gradle?

Но как это сделать с помощью скрипта построения градации, когда у меня нет Android.mk? Что равнозначно для LOCAL_C_INCLUDES в gradle?

Я попытался

android.ndk { 
    moduleName = "mymodule" 
    cppFlags.add("-I${file("C:\\Android\\JNI\\inc")}".toString()) 
} 

, но это не сработало.

Файлы заголовков не найдены: «my_file.h Нет такого файла или каталога».

ответ

2

Что именно вы пытаетесь сделать? Если вам нужно добавить файлы заголовков в вашей mymodule библиотеке, вы можете модифицировать:

sources { 
    main { 
     jni { 
      exportedHeaders { 
       srcDir "src/main/headers" 
      } 
     } 
    } 
} 

недвижимость.

Но если вы хотите добавить внешнюю папку include, вам необходимо предоставить дополнительную информацию. В общем, это не так просто, как добавление внешнего каталога. Помните. Являются ли эти заголовки одинаковыми для каждой платформы? Если так, вы в порядке, но если вам нужно связать с библиотеками, вы должны указать путь к ним в аргументах компоновщика. Вы должны проверить experimental android native gradle plugin.

+0

- Кажется, я не могу заставить экспортированные рабочие работать, не могли бы вы взглянуть на http://stackoverflow.com/questions/37147657/exportedheaders-dsl-does-not-seem-to-include-the-headers – Harkish