#java #android #eclipse #maven #android-maven-plugin
#java #Android #eclipse #maven #android-maven-plugin
Вопрос:
У меня есть проект Android с Maven, который использует внутренние библиотеки. Когда я запускаю установку maven, библиотека so не находится внутри сгенерированного файла jar и, следовательно, не находится внутри созданного apk. Я использую Eclipse с плагином maven и android maven v.3.7.0.
Мой pom.xml является:
<build>
<sourceDirectory>src</sourceDirectory>
<finalName>../bin/${project.artifactId}</finalName>
<plugins>
<plugin>
<groupId>com.jayway.maven.plugins.android.generation2</groupId>
<artifactId>android-maven-plugin</artifactId>
<version>3.7.0</version>
<configuration>
<nativeLibrariesDirectory>${project.basedir}/libs</nativeLibrariesDirectory>
<sdk>
<path>${env.ANDROID_HOME}</path>
<platform>15</platform>
</sdk>
</configuration>
<extensions>true</extensions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
</plugins>
</build>
Похоже, что тег nativeLibrariesDirectory не работает для меня.
Есть идеи по устранению этой проблемы? Спасибо
Ответ №1:
Вот как включить собственные библиотеки в ваш apk:
<build>
<finalName>${project.artifactId}</finalName>
<plugins>
<plugin>
<groupId>com.simpligility.maven.plugins</groupId>
<artifactId>android-maven-plugin</artifactId>
<extensions>true</extensions>
<configuration>
<manifest>
<debuggable>true</debuggable>
</manifest>
<!-- Where the native files are located; in the future we should use src/main/libs -->
<nativeLibrariesDirectory>${project.basedir}/libs</nativeLibrariesDirectory>
</configuration>
<executions>
<execution>
<id>manifestUpdate</id>
<phase>process-resources</phase>
<goals>
<goal>manifest-update</goal>
</goals>
</execution>
<execution>
<id>alignApk</id>
<phase>package</phase>
<goals>
<goal>zipalign</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
Ответ №2:
Проект Android для Maven Eclipse пока не поддерживает собственные библиотеки. Если вы хотите, чтобы это поддерживалось, отправьте запрос на извлечение.
Комментарии:
1. Это больше не действует в последнем плагине maven; смотрите Мой Ответ ниже для правильной записи pom.