1

我已经成功构建了手动运行 ndk-build 的 android 本机库。完成后,我在 /libs/ 目录中有所有已定义平台的库。

然后我尝试使用 maven 插件构建相同的内容。在 pom.xml 我定义了下一个插件:

<plugin>
    <groupId>com.jayway.maven.plugins.android.generation2</groupId>
    <artifactId>android-maven-plugin</artifactId>
    <version>${android-maven-plugin.version}</version>
    <configuration>
         <ndk>
            <path>${env.ANDROID_NDK_HOME}</path>
         </ndk>
         <clearNativeArtifacts>false</clearNativeArtifacts>
         <ndkArchitectures>armeabi armeabi-v7a x86</ndkArchitectures>
         <sdk>
             <platform>${android.api.version}</platform>
             <path>${env.ANDROID_HOME}</path>
         </sdk>                  
         <ndkBuildAdditionalCommandline>NDK_APP_OUT=${project.basedir}/obj/${android.liboutdir
         </ndkBuildAdditionalCommandline>
         <unndeployBeforeDeploy>false</undeployBeforeDeploy>
     </configuration>
</plugin>

运行:mvn compile。Libs 已经构建,位于 /libs// 中,不幸的是当时已被删除。这是日志:

[WARNING] Excluding native dependency attached by this build
[INFO] executing 24 parallel jobs
[INFO] /home/user/android/android-ndk-r9/ndk-build [-C,     /home/user/workspace/webrtc/trunk/android/voice-client-native,     NDK_APPLICATION_MK=jni/default_debug.mk, -j, 24, NDK_TOOLCHAIN=arm-linux-androideabi-4.6,     APP_ABI=armeabi-v7a, NDK_APP_OUT=/home/user/workspace/webrtc/trunk/android/voice-    client-native/obj/default_debug, all]
[INFO] Building jar: /home/user/workspace/webrtc/trunk/android/voice-client native/target/voice-native-1.0-SNAPSHOT.har
[INFO] Cleaning up extracted include directories used for build
[INFO] Creating native output directory /home/user/workspace/webrtc/trunk/android/voice-client-native/libs/x86

目录libs是空的,但图书馆位于target/ndk-libs/并且它适合我。

当我运行时,mvn install我有下一个输出:

Failed to install artifact com.tuenti.voice:voice-native:so:armeabi-v7a:1.0-SNAPSHOT: /home/user/workspace/webrtc/trunk/android/voice-client-native/libs/armeabi-v7a/libvoiceclient.so (No such file or directory) -> [Help 1]

我做错了什么?

4

1 回答 1

0

请更改 pom.xml 中的以下行

NDK_APP_OUT=${project.basedir}/obj/${android.liboutdir}

NDK_OUT=${project.basedir}/obj/${android.liboutdir} APP_ABI=all NDK_TOOLCHAIN=""

也请注释掉 nativeLibrariesDependenciesHardwareArchitectureOverrides 标记。

于 2014-09-20T14:41:25.997 回答