2013-10-25 33 views
1

我已經成功構建了帶有運行ndk-build manualy的android本地庫。在結束時,我爲/ libs /目錄中的所有定義的平臺提供了庫。使用maven構建原生android庫

然後我嘗試用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/它is'n適合我。

當我運行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] 

我做什麼了?

回答

0

在pom.xml中請改變下列線

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

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

另請註釋掉nativeLibrariesDependenciesHardwareArchitectureOverrides標記。