TMessagesProj: externalNativeBuildAfatDebug - PullRequest
0 голосов
/ 25 августа 2018

Я хочу построить телеграмму apk и почему я получил эту ошибку:
Build APK(s): Errors while building APK. You can find the errors in the 'Messages' view.

:TMessagesProj:externalNativeBuildAfatDebug | 1m 6s 712ms
Execute build | 1m 6s 683ms

Мой externalNativeBuild:

  externalNativeBuild {
        ndkBuild {
            path "jni/Android.mk"
        }
    }

Сведения об ошибке:

org.gradle.internal.UncheckedException: Build command failed.
Error while executing process D:\Software\2-Programming\Android-Programming\android-ndk-r17b\ndk-build.cmd with arguments {NDK_PROJECT_PATH=null APP_BUILD_SCRIPT=D:\TG\Telegram\TMessagesProj\jni\Android.mk NDK_APPLICATION_MK=D:\TG\Telegram\TMessagesProj\jni\Application.mk APP_ABI=armeabi-v7a NDK_ALL_ABIS=armeabi-v7a NDK_DEBUG=1 APP_PLATFORM=android-16 NDK_OUT=D:/TG/Telegram/TMessagesProj/build/intermediates/ndkBuild/afat/debug/obj NDK_LIBS_OUT=D:\TG\Telegram\TMessagesProj\build\intermediates\ndkBuild\afat\debug\lib NDK_APPLICATION_MK:=jni/Application.mk APP_PLATFORM:=android-16 -j8 D:/TG/Telegram/TMessagesProj/build/intermediates/ndkBuild/afat/debug/obj/local/armeabi-v7a/libtmessages.29.so}
Android NDK: WARNING: APP_STL gnustl_static is deprecated and will be removed in the next release. Please switch to either c++_static or c++_shared. See https://developer.android.com/ndk/guides/cpp-support.html for more information.    
Android NDK: WARNING: Deprecated NDK_TOOLCHAIN_VERSION value: 4.9. GCC is no longer supported and will be removed in the next release. See https://android.googlesource.com/platform/ndk/+/master/docs/ClangMigration.md.    
Android NDK: WARNING:D:\TG\Telegram\TMessagesProj\jni\Android.mk:flac: LOCAL_LDLIBS is always ignored for static libraries    
Android NDK: WARNING: Unsupported source file extensions in D:\TG\Telegram\TMessagesProj\jni\Android.mk for module flac    
Android NDK:   ./exoplayer/libFLAC/windows_unicode_filenames   

1 Ответ

0 голосов
/ 02 сентября 2018

@ ggfan сказал: Ссылка

увидел, что вы имели в виду на моей машине с Windows.Это не могло принять экранирование строки версии.Я просто сделал:

-DVERSION=1.3.1

вы можете проверить, что передается компилятору командной строки в вашем

%porject_dir%\TMessageProj\.externalNativeBuild\ndkBuild\arm64Debug\arm64-v8a\android_gradle_build.json

(для других типов арок перейдите к его эквивалентному каталогу)

Далее следует функция posix_memalign ().Платформа NDK 16 не экспортировала функцию, так что не повезло строить.Похоже, что 17 экспортировал его, так что если вы перейдете на android-17 для

"APP_PLATFORM:=android-17"

(и я не знаю, почему сборка linux прошла нормально, хотя: эта штука не могла зависеть от ОС).

Я думаю, вы могли бы наблюдать это с

ndk-bundle>toolchains\aarch64-linux-android-4.9\prebuilt\windows-x86_64\aarch64-linux-android\bin\nm.exe   platforms\android-17\arch-arm\usr\lib\libc.so

android-16 libc не экспортировал его.

При сборке для 64-битных архитектур ЦП (arm64, x86_64),это нормально, потому что 64-битная версия была добавлена ​​гораздо позже (я думаю, android-21), и ndk-build автоматически переключится на android-21, даже если вы укажете использовать android-16

. Вы также можете проверить эту ссылку: Ссылка

...