Android Studio 中的 NDK 集成

Posted

技术标签:

【中文标题】Android Studio 中的 NDK 集成【英文标题】:NDK integration in Android studio 【发布时间】:2015-11-02 14:25:55 【问题描述】:

今天我将我的android studio更新到1.3,并在local.properties中输入NDK(android-ndk-r10e NDK版本)路径(ndk.dir=C:\AndroidNDK\android-ndk-r10e\android-ndk- r10e) 但我收到了这个错误。

错误:任务 ':app:compileDebugNdk' 执行失败。

错误:当前插件中不推荐使用 NDK 集成。考虑尝试新的实验性插件。详情请见http://tools.android.com/tech-docs/new-build-system/gradle-experimental。在 gradle.properties 中设置“android.useDeprecatedNdk=true”以继续使用当前的 NDK 集成。

请帮我解决这个问题

【问题讨论】:

【参考方案1】:

gradle.properties 中设置android.useDeprecatedNdk=true 以继续使用当前的NDK 集成。

您只需按照错误中给出的说明进行操作即可。

【讨论】:

代表@user.clis:没有名为gradle.properties的文件。制作一个并手动添加文本似乎没有帮助。 我有同样的问题我将eclipse项目迁移到studio,但是steel得到了同样的错误,另一件事我在我的项目中找不到gradle.properties文件所以我手动添加了这个文件,但是钢铁不可能成功。帮助我。 切换到 android 选项卡,然后在 gradle 脚本中你会发现 gradle-wrapper.properties 在那里你可以编辑这个属性。我有同样的问题,它对我有用。希望有帮助 在根文件夹中创建 gradle.properties 文件对我有帮助。另请阅读:***.com/questions/31979965/… 我添加了 gradle 属性并设置了“android.useDeprecatedNdk=true”,我得到了这个错误。 Gradle 'android' 项目刷新失败错误:使用永恒系统时出现异常【参考方案2】:

在你的 build.gradle 中添加以下代码

 sourceSets 
        main 
            jni.srcDirs = []
        
    

这可能会解决您的问题..

【讨论】:

【参考方案3】:

r10e 在带有 gradlew 的 CLI 上很好。

r10e 适用于 androidStudio 的 gradle 版本(AS-1.3 中的 gradl-2.4)

只要您仍然使用“ph0b”的approach mention here。查看“示例 .gradle 文件”并注意 IMO,也许在他看来也是如此 - 你仍然不想要默认的 AS ndk 进程(你想做一些额外的配置工作并自己保持完全控制).Ph0b 上的 ndk 博客显示如何自己做这一切,而不是依赖 AS 生成的 android.mk。正如 ph0b 所解释的那样,我仍然使用我自己的 exec 执行 ndk 和我自己的 make 文件。在 linux 上使用 r10e / AS 1.3 一切都很好。

我的 CLI 标准输出....

:app:ndkBuild
make: Entering directory `/home/rob/src/speechnw/app/src/main/jni'
[armeabi-v7a] Compile thumb  : audioboo-ogg <= bitwise.c
[armeabi-v7a] Compile thumb  : audioboo-ogg <= framing.c
[armeabi-v7a] StaticLibrary  : libaudioboo-ogg.a
[armeabi-v7a] Compile thumb  : audioboo-flac <= bitmath.c
[armeabi-v7a] Compile thumb  : audioboo-flac <= bitreader.c
[armeabi-v7a] Compile thumb  : audioboo-flac <= cpu.c
[armeabi-v7a] Compile thumb  : audioboo-flac <= crc.c
[armeabi-v7a] Compile thumb  : audioboo-flac <= fixed.c
[armeabi-v7a] Compile thumb  : audioboo-flac <= float.c
[armeabi-v7a] Compile thumb  : audioboo-flac <= format.c
[armeabi-v7a] Compile thumb  : audioboo-flac <= lpc.c
[armeabi-v7a] Compile thumb  : audioboo-flac <= md5.c
[armeabi-v7a] Compile thumb  : audioboo-flac <= memory.c
[armeabi-v7a] Compile thumb  : audioboo-flac <= metadata_iterators.c
[armeabi-v7a] Compile thumb  : audioboo-flac <= metadata_object.c
[armeabi-v7a] Compile thumb  : audioboo-flac <= ogg_decoder_aspect.c
[armeabi-v7a] Compile thumb  : audioboo-flac <= ogg_encoder_aspect.c
[armeabi-v7a] Compile thumb  : audioboo-flac <= ogg_helper.c
[armeabi-v7a] Compile thumb  : audioboo-flac <= ogg_mapping.c
[armeabi-v7a] Compile thumb  : audioboo-flac <= stream_decoder.c
[armeabi-v7a] Compile thumb  : audioboo-flac <= stream_encoder.c
[armeabi-v7a] Compile thumb  : audioboo-flac <= stream_encoder_framing.c
[armeabi-v7a] Compile thumb  : audioboo-flac <= window.c
[armeabi-v7a] Compile thumb  : audioboo-flac <= bitwriter.c
[armeabi-v7a] StaticLibrary  : libaudioboo-flac.a
[armeabi-v7a] Compile++ thumb: audioboo-native <= FLACStreamEncoder.cpp
[armeabi-v7a] Compile++ thumb: audioboo-native <= FLACStreamDecoder.cpp
[armeabi-v7a] Compile++ thumb: audioboo-native <= util.cpp
[armeabi-v7a] StaticLibrary  : libstdc++.a
[armeabi-v7a] SharedLibrary  : libaudioboo-native.so
[armeabi-v7a] Install        : libaudioboo-native.so => libs/armeabi-v7a/libaudioboo-native.so
[x86] Compile        : audioboo-ogg <= bitwise.c
[x86] Compile        : audioboo-ogg <= framing.c
[x86] StaticLibrary  : libaudioboo-ogg.a
[x86] Compile        : audioboo-flac <= bitmath.c
[x86] Compile        : audioboo-flac <= bitreader.c
[x86] Compile        : audioboo-flac <= cpu.c
[x86] Compile        : audioboo-flac <= crc.c
[x86] Compile        : audioboo-flac <= fixed.c
[x86] Compile        : audioboo-flac <= float.c
[x86] Compile        : audioboo-flac <= format.c
[x86] Compile        : audioboo-flac <= lpc.c
[x86] Compile        : audioboo-flac <= md5.c
[x86] Compile        : audioboo-flac <= memory.c
[x86] Compile        : audioboo-flac <= metadata_iterators.c
[x86] Compile        : audioboo-flac <= metadata_object.c
[x86] Compile        : audioboo-flac <= ogg_decoder_aspect.c
[x86] Compile        : audioboo-flac <= ogg_encoder_aspect.c
[x86] Compile        : audioboo-flac <= ogg_helper.c
[x86] Compile        : audioboo-flac <= ogg_mapping.c
[x86] Compile        : audioboo-flac <= stream_decoder.c
[x86] Compile        : audioboo-flac <= stream_encoder.c
[x86] Compile        : audioboo-flac <= stream_encoder_framing.c
[x86] Compile        : audioboo-flac <= window.c
[x86] Compile        : audioboo-flac <= bitwriter.c
[x86] StaticLibrary  : libaudioboo-flac.a
[x86] Compile++      : audioboo-native <= FLACStreamEncoder.cpp
[x86] Compile++      : audioboo-native <= FLACStreamDecoder.cpp
[x86] Compile++      : audioboo-native <= util.cpp
[x86] StaticLibrary  : libstdc++.a
[x86] SharedLibrary  : libaudioboo-native.so
[x86] Install        : libaudioboo-native.so => libs/x86/libaudioboo-native.so
make: Leaving directory `/home/rob/src/speechnw/app/src/main/jni'
:app:compileDebugJava

【讨论】:

以上是关于Android Studio 中的 NDK 集成的主要内容,如果未能解决你的问题,请参考以下文章

无法配置NDK android studio并获取错误

Android NDK 开发总结

如何更新android studio中的ndk

Android Studio Ndk 编程

Android Studio NDK基础使用

用Android Studio 运行ndk 程序