2013-03-21 3 views
0

내 프로젝트의 빌드 프로세스를 진행하고 있습니다. 기본적으로 같은 소스에서 2 개의 앱을 제작하려고합니다. 이 작업을 수행하는 데 다른 프로필을 사용하고 있습니다.패키지 이름을 Lib 폴더로 변경 Android/Maven

나는 maven이 앱 내에서 이름과 URL을 변경하도록 구성 할 수있었습니다. 패키징을 변경해야하므로 두 앱이 동시에 기기에있을 수 있습니다.

이 내 프로젝트가 부모 POM 2 개 자식 리딩

첫 번째 하위 POM으로 설정하면이 APKlib로 패키지 된 라이브러리입니다. packaing은 com.companylib입니다.

두 번째 하위 POM은 실제 APK를 만들고 apklib를 참조합니다. 이것은 com.company로 패키지됩니다.

현재이 구성으로 매니페스트에서 packaing을 변경하고 있습니다.

   <plugin> 
        <groupId>com.jayway.maven.plugins.android.generation2</groupId> 
        <artifactId>android-maven-plugin</artifactId> 
        <inherited>true</inherited> 
        <configuration> 
         <renameManifestPackage>${manifest_pakage}</renameManifestPackage> 
         <sign> 
          <debug>false</debug> 
         </sign> 
         <zipalign> 
          <verbose>true</verbose> 
          <inputApk>${project.build.directory}/${project.artifactId}.apk</inputApk> 
          <outputApk>${project.build.directory}/${project.artifactId}-signed-aligned.apk 
          </outputApk> 
         </zipalign> 
         <manifest> 
          <debuggable>true</debuggable> 
          <versionCodeAutoIncrement>true</versionCodeAutoIncrement> 
         </manifest> 
         <proguard> 
          <skip>true</skip> 
         </proguard> 

        </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> 

나는 내가 사용하는 다른 프로필에 manifest_pakage를 정의합니다. 이것은 첫 번째 하위 POM에서 정의됩니다.

두 프로필 모두 정상적으로 작동하며 동일한 장치에 둘 다 설치할 수 있습니다. 그러나 roboguice가 APKLIB를 참조하려고 할 때 준비 앱에서 문제가 발생합니다. 다음과 같은 오류가 나타납니다.

그래서 apklib의 패키지는 변경되지 않았습니다. 이상한 것은 내가 생산에 포장을 대체한다는 것입니다, 그리고 그것은 ok (tho 나는 그것을 같은 포장으로 대체합니다)를 작동합니다.

이렇게 설정하면 빌드가 lib의 패키징을 변경해야합니까?

lib에 기본 앱과 다른 패키지 이름이 있으면 괜찮습니까?

답변

0

필자의 경우, 나는 이것을 좋아하고 작동 시켰습니다.

  1. 프로젝트를 선택하고 이전 패키지 이름에 대해 file search을하고 새로운 패키지 이름으로 대체 (I 이클립스 IDE를 사용하고 있습니다). (이것은 프로젝트 파일 내의 모든 이전 패키지 이름을 대체합니다)

  2. package --> Refactor --> Rename을 마우스 오른쪽 단추로 클릭하십시오. 새 패키지 이름으로 바꾸십시오. 이는 패키지 구성을 대체합니다. 다시

    (첫 번째 단계 전에이 작업을 수행하는 경우와 대신 (com.project.package.name.YourActivity)는 매니페스트에 선언 전체 패키지 이름의 .YourActivity가있는 경우, 이 오류가 발생할 수 있습니다)

  3. 프로젝트를 선택 파일 검색을 수행합니다. 이번에는 AndroidAnnotations을 사용하고 여기에 새 패키지 이름을 바꾸면 주석이 달린 파일이 표시됩니다.

참고 : 자신의 플러그인이나 기존의 패키지 이름을 가진 라이브러리를 사용하는 경우 그것은 또한 대체됩니다대로 아이 pom.xml에서 동일한 지 확인해야 할 필요가있을 수 있습니다.

희망이 도움이 .. ..! :) 행복한 코딩 ..!

관련 문제