地獄所有,Maven的回購產生.so文件,如扶養使用Maven項目
首先,我與Android的工作和我對Maven構建過程中的一些問題,當涉及到自動化的使用我的Android項目中的本地庫。我說自動化,因爲目前我可以採取本地項目(回購),並建立我需要的.so文件(通過Maven構建過程),然後我只是複製該.so文件,並將其放在我的主項目本地庫文件夾(即mainProject /src/main/libs/armeabi-v7a/nativeLib.so)。所以...我是踢出來的.so文件本地項目的pom.xml如下所示(建成區)
<packaging>so</packaging>
<properties>
<android.ndk.args>V=1 -B NDK_DEBUG=1 -j8</android.ndk.args>
<arch>armeabi-v7a</arch>
<mavenAntrunPluginVersion>1.8</mavenAntrunPluginVersion>
</properties>
<build>
<extensions>
<extension>
<groupId>org.apache.maven.wagon</groupId>
<artifactId>wagon-webdav</artifactId>
<version>1.0-beta-2</version>
</extension>
</extensions>
<plugins>
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<version>${mavenAntrunPluginVersion}</version>
<executions>
<execution>
<phase>validate</phase>
<configuration>
<tasks>
<exec
dir="${project.basedir}/src/main/java/com/abc/myClass"
executable="javac"
failonerror="true">
<arg value="myClass.java"/>
</exec>
<exec
dir="${project.basedir}"
executable="javah"
failonerror="true">
<arg value="-d"/>
<arg value="${project.basedir}/target/jni/include"/>
<arg value="-classpath"/>
<arg value="${project.basedir}/src/main/java"/>
<arg value="com.abc.myClass.MyClass"/>
</exec>
</tasks>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>com.simpligility.maven.plugins</groupId>
<artifactId>android-ndk-maven-plugin</artifactId>
<version>1.0.1-SNAPSHOT</version>
<extensions>true</extensions>
<configuration>
<target>${project.artifactId}</target>
<finalLibraryName>${project.artifactId}</finalLibraryName>
<ndkPath>${android.ndk.path}</ndkPath>
<applicationMakefile>src/main/cpp/Application.mk</applicationMakefile>
<makefile>src/main/cpp/Android.mk</makefile>
<architectures>${arch}</architectures>
<additionalCommandline>${android.ndk.args}</additionalCommandline>
<librariesOutputDirectory>${project.build.directory}/ndk-libs</librariesOutputDirectory>
<objectsOutputDirectory>${project.build.directory}/ndk-obj</objectsOutputDirectory>
<headerFilesDirectives>
<headerFilesDirective>
<directory>${basedir}/src/main/cpp</directory>
<includes>
<include>**\/*.hpp</include>
</includes>
</headerFilesDirective>
</headerFilesDirectives>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<executions>
<execution>
<id>attach-sources</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
所以,這將引發的。所以到myNativeProject /目標/ NDK-OBJ/armeabi- V7A/nativeLib.so。然後我通常會將其複製到我的主項目中。我嘗試使這個項目與類型.so的依賴關係,但它不承認它。我如何將此添加到我的主項目中?提前謝謝了。
爲什麼使用[SNAPSHOT]版本的[android-ndk-maven-plugin](http://simpligility.github.io/android-ndk-maven-plugin/)。我會建議使用更新的發行版本。 – khmarbaise
會不會,我仍然可以建立這個項目。只需要知道如何將我的主項目指向這個.so –