我正在尝试学习Android-NDK,因此我尝试修改现有示例,因此我尝试从Android-PCAP构建apk但无法执行此操作,并收到此错误消息
Information:Gradle tasks [:app:assembleDebug]
WARNING [Project: :app] Current NDK support is deprecated. Alternative will be provided in the future.
:app:preBuild UP-TO-DATE
:app:preDebugBuild UP-TO-DATE
:app:checkDebugManifest
:app:preReleaseBuild UP-TO-DATE
:app:prepareComAndroidSupportGridlayoutV71800Library UP-TO-DATE
:app:prepareDebugDependencies
:app:compileDebugAidl UP-TO-DATE
:app:compileDebugRenderscript UP-TO-DATE
:app:generateDebugBuildConfig UP-TO-DATE
:app:generateDebugAssets UP-TO-DATE
:app:mergeDebugAssets UP-TO-DATE
:app:generateDebugResValues UP-TO-DATE
:app:generateDebugResources UP-TO-DATE
:app:mergeDebugResources UP-TO-DATE
:app:processDebugManifest UP-TO-DATE
:app:processDebugResources UP-TO-DATE
:app:generateDebugSources UP-TO-DATE
:app:processDebugJavaRes UP-TO-DATE
:app:compileDebugJava UP-TO-DATE
:app:compileDebugNdk
/home/nika/workspace/android-pcap/app/src/main/jni/libpcap/pcap-snoop.cpp:36:21: fatal error: net/raw.h: No such file or directory
#include <net/raw.h>
^
compilation terminated.
make: *** [/home/nika/workspace/android- pcap/app/build/intermediates/ndk/debug/obj/local/arm64- v8a/objs/pcap//home/nika/workspace/android-pcap/app/src/main/jni/libpcap/pcap-snoop.o] Error 1
Error:Execution failed for task ':app:compileDebugNdk'.
> com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/opt/android-ndk/ndk-build'' finished with non-zero exit value 2
Information:BUILD FAILED
Information:Total time: 8.645 secs
Information:1 error
Information:0 warnings
Information:See complete output in console
无论如何我能解决这个错误吗?任何帮助将不胜感激。
在此之前,我在this question中提到了错误。但后来我将文件从c重命名为cpp,解决了这个问题。
我在Linuxmint 17.1上使用的是Android Studio 1.2.2和Android NDK r10e。 :)
答案 0 :(得分:0)
无论如何我能解决这个错误吗?
请勿尝试编译pcap-snoop.c - 并且不要将其重命名为pcap-snoop.cpp并尝试编译它。
Libpcap是一个多平台库,支持许多不同的操作系统。各个UN * Xes为捕获数据包提供的机制对于不同的UN * Xes是不同的。 * BSD,OS X / iOS,AIX和Solaris 11及更高版本具有BPF; Linux有SOCK_PACKET和PF_PACKET套接字;其他UN * Xes有其他机制。
Libpcap提供了一个API,试图隐藏与应用程序的差异。 &#34; pcap - *。c&#34;文件是特定捕获机制的模块,当编译libpcap以在特定操作系统上运行时,只有适当的&#34; pcap - * .c&#34;应编译该操作系统的文件。
Android是基于Linux的,适当的&#34; pcap - *。c&#34;毫不奇怪,Linux的文件&#34; pcap-linux.c&#34;。 &#34; PCAP-snoop.c&#34;是适当的&#34; pcap - *。c&#34; SGI的IRIX文件;一个人应该从不尝试编译它,除非有人在IRIX上编译,或者,如果可能的话,为IRIX进行交叉编译。