powered by simpleCommunicator - 2.0.40     © 2025 Programmizd 02
Форумы / Android [игнор отключен] [закрыт для гостей] / NDK проблема
25 сообщений из 26, страница 1 из 2
NDK проблема
    #38832305
Микола Питерский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Скачал версию 10d, разархивировал в каталог, взял из NDK пример hello-neon скопировал в другую папку, импортировал его в студию и пытаюсь запустить. Сразу студия выдала ошибку:
Error:Execution failed for task ':app:compileDebugNdk'.
> NDK not configured.
Download the NDK from http://developer.android.com/tools/sdk/ndk/.Then add ndk.dir=path/to/ndk in local.properties.
(On Windows, make sure you escape backslashes, e.g. C:\\ndk rather than C:\ndk)


Ок - добавил то чего она хочет в local.properties т .е. там уже:
sdk.dir=E\:\\Developer\\android-sdk
ndk.dir=E\:\\Developer\\android-ndk-r10d

Синхронизировал проект с gradle, запускаю и получаю ошибку:
Error:Execution failed for task ':app:compileDebugNdk'.
> com.android.ide.common.internal.LoggedErrorException: Failed to run command:
E:\Developer\android-ndk-r10d\ndk-build.cmd NDK_PROJECT_PATH=null APP_BUILD_SCRIPT=E:\android_test_project\hello-neon\app\build\intermediates\ndk\debug\Android.mk APP_PLATFORM=android-21 NDK_OUT=E:\android_test_project\hello-neon\app\build\intermediates\ndk\debug\obj NDK_LIBS_OUT=E:\android_test_project\hello-neon\app\build\intermediates\ndk\debug\lib APP_ABI=all
Error Code:
2
Output:
E:\android_test_project\hello-neon\app\src\main\jni\helloneon.c:21:26: fatal error: cpu-features.h: No such file or directory
#include <cpu-features.h>
^
compilation terminated.
make.exe: *** [E:\android_test_project\hello-neon\app\build\intermediates\ndk\debug\obj/local/arm64-v8a/objs/helloneon/E_\android_test_project\hello-neon\app\src\main\jni\helloneon.o] Error 1


Т.е. студия по прежнему не может найти каталог с NDK - ладно читаю Start_Here.html из NDK и вижу что нужно добавить
set PATH=%PATH%;C:/Android_SDK/NDK/android-ndk-r10

добавляю:
set PATH=...;e:\Developer\android-ndk-r10d

Ничего не изменилось - т.е. студия по прежнему каталог не находит. Лезу в интернет и читаю - что NDK в студии под Windows использовать не получится, лезу в саму NDK и действительно в ней упоминается только эклипс.

Неужели все так плохо?
...
Рейтинг: 0 / 0
NDK проблема
    #38832339
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В build.gradle android {} добавь строки:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
    sourceSets.main {
        jni.srcDirs = []
        jniLibs.srcDir 'src/main/libs'
    }

    task buildNative(type: Exec, description: 'Compile JNI source via NDK') {
        def ndkDir = project.plugins.findPlugin('com.android.application').getNdkFolder()
        commandLine "$ndkDir/ndk-build.cmd",
                '-C', file('src/main/jni').absolutePath,
                '-j', Runtime.runtime.availableProcessors(),
                'all',
                'NDK_DEBUG=1'
    }

    task cleanNative(type: Exec, description: 'Clean JNI object files') {
        def ndkDir = project.plugins.findPlugin('com.android.application').getNdkFolder()
        commandLine "$ndkDir/ndk-build.cmd",
                '-C', file('src/main/jni').absolutePath,
                'clean'
    }

    clean.dependsOn 'cleanNative'

    tasks.withType(JavaCompile) {
        compileTask -> compileTask.dependsOn buildNative
    }
...
Рейтинг: 0 / 0
NDK проблема
    #38832341
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Микола ПитерскийЛезу в интернет и читаю - что NDK в студии под Windows использовать не получится
"Не читайте советских газет"... У тебя интернет не такой, как у меня.
...
Рейтинг: 0 / 0
NDK проблема
    #38832351
Микола Питерский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadman, огромное спасибо - теперь все компилируется!!!
...
Рейтинг: 0 / 0
NDK проблема
    #38832489
Микола Питерский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Радовался недолго - пример bitmap-plasma компилировался и выполнялся, а вот взял пример hello-gl2 и получил при компиляции ошибку:
....
E:/android_test_project/hello-gl21/app/src/main//jni/gl_code.cpp:22:23: fatal error: GLES2/gl2.h: No such file or directory
#include <GLES2/gl2.h>
^
compilation terminated.
make.exe: *** [E:/android_test_project/hello-gl21/app/src/main//obj/local/armeabi-v7a/objs-debug/gl2jni/gl_code.o] Error 1

Сам gl_code.cpp:
...
#include <jni.h>
#include <android/log.h>

#include <GLES2/gl2.h>
#include <GLES2/gl2ext.h>

т.е. почему-то 1-е 2 строки обработались нормально а на gl2.h ошибка - а файл gl2.h в указанном каталоге есть, но почему-то его не находит - где я накосячил?
...
Рейтинг: 0 / 0
NDK проблема
    #38832634
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
target какой?
...
Рейтинг: 0 / 0
NDK проблема
    #38832651
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообще для таких случаев хорош procmon от sysinternals. Всегда можно понять почему не находится файл, "который есть".
...
Рейтинг: 0 / 0
NDK проблема
    #38832719
Микола Питерский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadman, версии уже пробовал подбирать - не помогло
compileSdkVersion 21
buildToolsVersion "20.0.0"

defaultConfig {
applicationId "com.android.gl2jni"
minSdkVersion 8
targetSdkVersion 10

понаблюдал за make.exe - это он читает в NDK - но там несколько тысяч записей - бегло просмотрел - вроде все SUCCESS
т.е. увидеть в каком каталоге он что не нашел невозможно.

Порылся в инете - так оказывается эта проблема только в 10 версии, в которой 64 уже для 21 апи есть.
Но покрайней мере - хоть один пример из их примеров собирается и работает без проблем :)
...
Рейтинг: 0 / 0
NDK проблема
    #38832731
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Микола ПитерскийПорылся в инете
Знаю я, как ты копаешься. а мне уже лень, пятница-вечер...
...
Рейтинг: 0 / 0
NDK проблема
    #38832753
Микола Питерский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadman, нашел методом тыка:
в application.mk должна быть обязательно строка APP_PLATFORM := android-8 и тогда проект успешно компилируется.
У них в примерах только в одном проекте эта строка есть :) который и компилировался.
...
Рейтинг: 0 / 0
NDK проблема
    #38832760
Микола Питерский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А еще обязательно должно быть:
sourceSets.main {
jni.srcDirs = []
}

Я вот закоментировал jni.srcDirs = [] и проект тоже перестал компилироваться. А эта строка указывает студии не показывать сишный каталог в студии - т.е. редактором студии править эти файлы уже нельзя.
Нужно использовать блокнот - как так ???
...
Рейтинг: 0 / 0
NDK проблема
    #38834844
Микола Питерский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подскажите как проще заюзать проверку хэша MD5 в NDK - как я понял в составе NDK его нет - или я опять плохо искал? :)
А может поделитесь ссылкой на md5.c или есть какой более простой способ?
...
Рейтинг: 0 / 0
NDK проблема
    #38835165
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чем явовские средства для получения md5 не подходят?
...
Рейтинг: 0 / 0
NDK проблема
    #38835218
Микола Питерский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadman, подходят - просто я думал может сишные удобнее использовать. Ок - буду дергать жавовские.
...
Рейтинг: 0 / 0
NDK проблема
    #38835274
Микола Питерский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadman, просто результат вызова жавовских методов - это строковая ссылка на них в файлике *.so . Я хотел это дело скрыть.
...
Рейтинг: 0 / 0
NDK проблема
    #38835283
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Микола Питерскийрезультат вызова жавовских методов - это строковая ссылка на них в файлике *.so
Уверен?
...
Рейтинг: 0 / 0
NDK проблема
    #38835290
Микола Питерский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadman, конечно - в .so все жава вызовы как на ладони и ума много не надо найти нужную точку и реверснуть ее.
...
Рейтинг: 0 / 0
NDK проблема
    #38835306
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Микола Питерскийwadman, конечно - в .so все жава вызовы как на ладони и ума много не надо найти нужную точку и реверснуть ее.
Раз ты так об этом беспокоишься, то наверное стоит еще стоит применить шифрование в so, ибо там обычный асм.
...
Рейтинг: 0 / 0
NDK проблема
    #38835312
Микола Питерский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadman, видно все начиная от публичного ключа с которым я собрался сверяться, заканчивая способами привязки и это в обычном просмотрщике - а если прогнать через дизасемблер...
...
Рейтинг: 0 / 0
NDK проблема
    #38835316
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Какой смысл так защищаться-то? Что за проект? Если не секрет...
...
Рейтинг: 0 / 0
NDK проблема
    #38835320
Микола Питерский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadman, так это для всех проектов - просто пытаюсь сделать нормальную защиту. Конечно даже в таком виде это лучше чем просто жавовская проверка.
...
Рейтинг: 0 / 0
NDK проблема
    #38835400
Фотография Джибс
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
осфурцировать не пробовал ?


что бы , хотя бы школота не смогла так увидеть
...
Рейтинг: 0 / 0
NDK проблема
    #38835430
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Джибс,

это системные штуки, не должно сработать.
...
Рейтинг: 0 / 0
NDK проблема
    #38835680
Микола Питерский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Джибс, буду свой обфускататор делать (функцию, которая видоизменяет строки а при вызове восстанавливает)
...
Рейтинг: 0 / 0
NDK проблема
    #38841532
Микола Питерский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блин - пытаюсь "спрятать" строку

Код: plaintext
1.
2.
3.
//const char Key[]={'B','2','2','6','C','2','\0'};
//const char Key[]={0x42,0x32,0x32,0x36, 0x43,0x32, 0x00};
const char Key[]="\x42\x32\x32\x36\x43\x32\x00";



но после компиляции нахожу эту строку в оригинальном виде. Вероятно срабатывает оптимизатор при компиляции, в обычном C++ он включается параметром "-O", а как тут его отключить?
Еще сильно озабочен тем что имена всех функций (даже внутренних) остались нетронутыми - что за хрень такая?
...
Рейтинг: 0 / 0
25 сообщений из 26, страница 1 из 2
Форумы / Android [игнор отключен] [закрыт для гостей] / NDK проблема
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]