나는 안드로이드 라이브러리 프로젝트를 작성 중이며 Maven에 대한 지원을 추가하려고합니다. 내 라이브러리 프로젝트 POM 파일은 다음과 같다 :Maven을 사용한 안드로이드 라이브러리 프로젝트 지원
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.simpligility.android</groupId>
<artifactId>helloflashlight</artifactId>
<version>1.0.0</version>
<packaging>apk</packaging>
<name>HelloFlashlight</name>
<dependencies>
<dependency>
<groupId>com.google.android</groupId>
<artifactId>android</artifactId>
<version>4.1.1.4</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>my_group_id</groupId>
<artifactId>my_artifactId</artifactId>
<version>1.0.1</version>
<type>apklib</type>
</dependency>
</dependencies>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<build>
<sourceDirectory>src</sourceDirectory>
<finalName>${project.artifactId}</finalName>
<plugins>
<plugin>
<groupId>com.jayway.maven.plugins.android.generation2</groupId>
<artifactId>android-maven-plugin</artifactId>
<version>3.8.2</version>
<extensions>true</extensions>
<configuration>
<sdk>
<platform>19</platform>
</sdk>
</configuration>
</plugin>
</plugins>
</build>
</project>
내가 사용 내 로컬 저장소에 라이브러리 프로젝트를 설치하고 :
mvn clean install
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>my_group_id</groupId>
<artifactId>my_artifactId</artifactId>
<version>1.0.1</version>
<packaging>apklib</packaging>
<name>My Library Project</name>
<dependencies>
<dependency>
<groupId>com.google.android</groupId>
<artifactId>android</artifactId>
<version>4.1.1.4</version>
<scope>provided</scope>
</dependency>
</dependencies>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<build>
<sourceDirectory>src</sourceDirectory>
<finalName>${project.artifactId}</finalName>
<plugins>
<plugin>
<groupId>com.jayway.maven.plugins.android.generation2</groupId>
<artifactId>android-maven-plugin</artifactId>
<version>3.8.2</version>
<extensions>true</extensions>
<configuration>
<sdk>
<platform>19</platform>
</sdk>
</configuration>
</plugin>
</plugins>
</build>
</project>
내 주요 프로젝트 POM 파일은 다음과 같습니다
그러면 로컬 저장소에 기본 프로젝트를 컴파일하고 설치합니다 :
및 사용하여 APK 생성 : 나는 받는다는와 함께 프로젝트를 컴파일 할 때
mvn android:deploy
지금 문제가 발생합니다. 프로젝트가 성공적으로 컴파일되지만 장치에서 apk를 실행하면 라이브러리 프로젝트 내부의 리소스에 대해 findById를 수행하려고 할 때 NullPointerException이 발생합니다. findById가 반환하는 값의 일부는 항상 정확한 유형이 아니라는 것을 유의하십시오 (예 : 예상 레이아웃이지만 버튼이 있음). 모든 것이 없으면 Eclipse에서 실행될 때 모든 것이 완벽하게 작동한다고 말하는 것이 중요합니다.
알려주십시오