Я загрузил исходный код Telegram из GitHub и скомпилировал его. во-первых, он дал мне некоторые ошибки о NDK_PROJECT_PATH = null
и так, как кто-то предложил я изменил:
UnsatisfiedLinkError родной метод не найден - Android-Telegram
sourceSets.main.jniLibs.srcDirs = ['./jni/']
externalNativeBuild {
ndkBuild {
path "jni/Android.mk"
}
}
к:
sourceSets.main {
jniLibs.srcDir 'libs'
jni.srcDirs = [] //disable automatic ndk-build call
}
в Gradle.
после запуска 2 .so файла, созданного в libs\armeabi
и libs\armeabi-v7a
(оба из них около 4kb) и я могу получить LaunchActivity.java, но когда я нажимаю на START ПОСЛАНИЕ в приложение падает на ApplicationLoader.loadWallpaper();
(в LaunchActivity.java), который запускает runnable. я debbuged его, пока я не достиг до uncaughtException
, который был следующим:
unsatisfiedlinkerror нативный метод не найден: org.telegram.messenger.Utilities.pinBitmap: (Landroid/Графика/Bitmap;)
после этого я снова собрать native jni Manualy из командной строки (я имею в виду переход в родительскую папку nji и запуск ndk-build.cmd). Когда сборка завершена, папка «obj» была создана в родительской папке nji и что 2 файла сгенерированы снова, но размером 14kb.
Я заменяю их старыми в папке libs.
после очистки и повтора, у меня все еще такая же ошибка (собственный метод не найден ...).
Может ли любое тело помочь мне, что не так с этим NDK ?? любая помощь будет оценена.
Спасибо, MA.
Вы загрузили NDK и указали студию на него? –
@ Jon Goodwin, конечно, он находится в папке C: \ Users \ Mohamad \ AppData \ Local \ Android \ sdk \ ndk-bundle, и я установил его в структуре проекта. –
Вы проверили свою 'TARGET_PLATFORM' /' APP_PLATFORM'? Он должен соответствовать вашему minSdkVersion. Вчера был аналогичный вопрос - это могло бы помочь: http://stackoverflow.com/questions/40468805/unsatisfiedlinkerror-dlopen-failed-cannot-locate-symbol-aeabi-memcpy4-refe – vkislicins