Как предотвратить автоматическую генерацию Android.mk с помощью нового экспериментального плагина Gradle

Я пытаюсь собрать проект NDK с новым экспериментальным плагином Gradle, но кажется, что Gradle игнорирует Android.mk и начинает компилировать все, не обращая внимания на то, что написано в Android.mk, я знаю о новом синтаксисе, и я прочитайте следующее Руководство пользователя экспериментального плагина, также я пробовал следующий синтаксис:

    android.sources {
    main {
        jni {
            source {
                srcDirs = []
            }
        }
    }
}

но он по-прежнему игнорирует файл Android.mk. Я использую:

  • Android Studio 1.3.1 стабильная версия
  • Gradle 2.5 с экспериментальным плагином 0.2.0

Кто что может посоветовать?


person VitalyD    schedule 19.08.2015    source источник
comment
Поиск нашел несколько вопросов StackOverflow, которые, казалось, были связаны с этим, например. stackoverflow.com/questions/27833530/   -  person Michael    schedule 19.08.2015
comment
просмотрел весь StackOverflow, обратите внимание, что я использую новый экспериментальный плагин Gradle, который имеет другой синтаксис и работает иначе, чем стандартный Gradle.   -  person VitalyD    schedule 19.08.2015


Ответы (2)


если вы установите

android.sources{
    main.jni {
        source {
            srcDirs = ['src/main/none'] // [] could be set instead but will disable even symbol resolution inside the editor
        }
    }
    main.jniLibs {
        source {
            srcDirs = ['src/main/libs']
        }
    }
}

Android Studio не будет пытаться собрать ваши исходники и интегрирует ваши файлы .so, находящиеся внутри src/main/libs/<abi>/.

Это означает, что вы можете сами вызвать ndk-build, и ваши файлы Makefile не будут проигнорированы.

person ph0b    schedule 25.08.2015
comment
Это работает, но есть опечатки: srcDirs = ['src/main/none'] srcDirs = ['src/main/libs'] - person Anthony; 29.08.2015
comment
Есть шанс, что у вас есть совет по аналогичному вопросу jni.source: 32285107/ - person Anthony; 29.08.2015

Попробуйте поставить:

 android.useDeprecatedNdk=true

Внутри вашего файла gradle.properties.

Затем вы сможете использовать синтаксис, который вы упомянули в своем вопросе.

person Etienne Savard    schedule 19.08.2015
comment
это будет работать, но я пытаюсь использовать экспериментальный плагин, чтобы получить возможность отладки ndk. - person VitalyD; 21.08.2015
comment
Я думаю, что они перестанут поддерживать файл Android.mk с новым экспериментальным плагином. Вы должны использовать gradle build.gradle. Я буду рад, если кто-то сможет доказать, что я ошибаюсь в этом! - person Etienne Savard; 21.08.2015