1

ndk-build manualy を正常に実行して、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// に配置されましたが、残念ながらその後削除されました。ログは次のとおりです。

[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 に答える