【问题标题】:Telegram for Android, confusing NDK errorTelegram for Android,令人困惑的 NDK 错误
【发布时间】:2017-09-17 18:13:09
【问题描述】:

所以我已经从 GitHub 下载了 Telegram messenger 源代码,我正在尝试让它第一次在 Android Studio 上运行。现在错误如下:

构建失败消息是:

错误:错误:CreateProcess:没有这样的文件或目录

Gradle Console 中的详细日志为:

FAILURE:构建失败并出现异常。

  • 出了什么问题:

    任务“:TMessagesProj:externalNativeBuildArmv7Debug”执行失败。

构建命令失败。 使用参数执行进程 D:\AndroidStudio\sdk\ndk-bundle\ndk-build.cmd 时出错 {NDK_PROJECT_PATH=null APP_BUILD_SCRIPT=C:\TMessagesProj\jni\Android.mk NDK_APPLICATION_MK=C:\TMessagesProj\jni\Application.mk APP_ABI=armeabi-v7a NDK_ALL_ABIS=armeabi-v7a NDK_DEBUG=1 APP_PLATFORM=android-14 NDK_OUT=C:/TMessagesProj/build/intermediates/ndkBuild/armv7/debug/obj NDK_LIBS_OUT=C:\TMessagesProj\build\intermediates\ndkBuild\armv7 \debug\lib NDK_APPLICATION_MK:=jni/Application.mk APP_PLATFORM:=android-14 C:/TMessagesProj/build/intermediates/ndkBuild/armv7/debug/obj/local/armeabi-v7a/libtmessages.26.so}
[armeabi-v7a] SharedLibrary : libtmessages.26.so
arm-linux-androideabi-g++:错误:CreateProcess:没有这样的文件或目录
制作:***
[C:/TMessagesProj/build/intermediates/ndkBuild/armv7/debug/obj/local/armeabi-v7a/libtmessages.26.so] 错误 1

当我检查日志中寻址的目录时,我没有找到名为 libtmessages.26.so 的文件。我不知道出了什么问题。我对 C++ 和 GCC 了解不多,所以我很感激任何详细的帮助。

值得一提的是,在此错误之前,我遇到了“结构中的重新定义”错误。当我集中注意力时,我发现两个 link.h 文件中有两个类的重复定义,一个在项目中,另一个在我的 sdk\ndk-bundle 目录中。所以我在我的sdk中评论了link.h中的冲突,我遇到了上述错误。但奇怪的是,当我取消注释这些部分时,我希望再次看到重新定义错误,但令人惊讶的是没有任何改变,我仍然得到上述错误。

无论如何,感谢任何帮助。提前致谢。

【问题讨论】:

  • 你有哪个版本的NDK?尝试从命令行运行 ndk-build:转到 C:\TMessagesProj 并运行 D:\AndroidStudio\sdk\ndk-bundle\ndk-build.cmd APP_ABI=armeabi-v7a APP_PLATFORM=android-14
  • NDK 的最新版本,第 15 版 (r-15)
  • 尝试显式设置ANDROID_DEPRECATED_HEADERS=true。你的命令行构建说明了什么?
  • 谢谢!我应该把代码行放在哪里?如果在 Gradle 中,那么在 Gradle 中的哪个位置?
  • 将其添加到 build.gardle 中的arguments setting。

标签: android-studio android-ndk shared-libraries telegram


【解决方案1】:

在 JNI 文件夹中的 Android.mk 文件的第一个添加以下行。

LOCAL_SHORT_COMMANDS := true

然后在 JNI 文件夹中的 Application.mk 文件的第一个添加以下行。

APP_SHORT_COMMANDS := true

如果这不能解决您的问题并且您还有一些错误,请尝试在您的构建过程中使用 MULTIDEX。你可以找到很多关于如何启用它的教程。

【讨论】:

    猜你喜欢
    • 2018-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-15
    • 2011-04-16
    • 2012-09-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多