2013-08-24 36 views
5

我想开始使用appcompat-v7支持库的新ActionBar,并且我正在使用maven。我试图创建一个apklib。这是我遵循的步骤:生成兼容性的APKLIB-v7-appcompat

  1. 创建项目android-sdks/extras/android/support/v7/appcompat
  2. 的ZIP文件的ZIP文件与APKLIB扩展名重命名。
  3. 的APKLIB文件安装到我的本地库:

C:....平方米\库\机器人\ SUPPORT \兼容性-V7-程序兼容性\ 18> MVN 安装:安装文件 - Dfile = appcombat.apklib -DgroupId = android.support -DartifactId =程序兼容性-Dversion = 18 -Dpackaging = apklib

开始使用该库从我的Android项目将在POM这种依赖关系:

<dependency> 
     <groupId>android.support</groupId> 
     <artifactId>appcompat</artifactId> 
     <version>18</version> 
     <type>apklib</type> 
    </dependency> 

但它不工作。我收到一个失踪神器的错误。
任何帮助将非常感激。

+0

不是创建一个新的依赖的东西,你可以[包括在Maven的官方Android支持] [1] [ 1]:http://stackoverflow.com/a/29153638/1345391 – JavierSP1209

回答

1

使用maven-android-sdk-deployer生成的apklib适合我。

https://github.com/mosabua/maven-android-sdk-deployer

+0

是的,谢谢,但我想学习由我自己生成它。 – nano

+1

我不知道如何使用maven-android-sdk-deployer安装compatibility-v7-appcompat v19。 我运行mvn install -P 4.4,但是我的本地maven仓库中没有安装兼容性-v7-appcompat v19。我应该运行什么命令? – Giorgio

+1

只需导航到目录(maven-android-sdk-deployer/extras/compatibility-v7-appcompat)并运行'mvn clean install'(尽管我不确定是否需要'clean') – kassim

8

的是程序兼容性安装到你的本地库,而不依赖于Maven的SDK部署...

从Android SDK管理器,安装了“Android的支持库”选项的方式。 进入你的SDK文件夹,然后进入./extras/m2Repository/com/android/support/appcompat-v7/18.0.0

打开appcompat-v7-18.0.0.aar文件并复制classes.jar出到一个名为程序兼容性,v7-18.0.0.jar

在命令行中的文件进入同一m2Repository文件夹,然后运行以下命令:

mvn install:install-file -Dfile="./com/android/support/appcompat-v7/18.0.0/appcompat-v7-18.0.0.jar"/ -DpomFile="./com/android/support/appcompat-v7/18.0.0/appcompat-v7-18.0.0.pom"/ -Dpackaging="jar" 
mvn install:install-file -Dfile="./com/android/support/appcompat-v7/18.0.0/appcompat-v7-18.0.0.aar"/ -DpomFile="./com/android/support/appcompat-v7/18.0.0/appcompat-v7-18.0.0.pom"/ -Dpackaging="apklib" 

然后在你的项目中添加以下两个依赖POM

<dependency> 
     <groupId>com.android.support</groupId> 
     <artifactId>appcompat-v7</artifactId> 
     <version>18.0.0</version> 
     <type>apklib</type> 
    </dependency> 
    <dependency> 
     <groupId>com.android.support</groupId> 
     <artifactId>appcompat-v7</artifactId> 
     <version>18.0.0</version> 
     <type>jar</type> 
    </dependency> 
+1

appcompat-v7取决于support-v4,因此您还需要从相同的m2repository文件夹运行以下命令:mvn install:install-file -Dfile =“./ com/android/support/support-v4/18.0.0/support -v4-18.0.0.jar“/ -DpomFile =”./ com/android/support/support-v4/18.0.0/support-v4-18.0.0.pom“/ -Dpackaging =”jar“ – LightStruk

0
<dependency> 
     <groupId>com.android.support</groupId> 
     <artifactId>appcompat-v7</artifactId> 
     <version>18.0.0</version> 
     <type>apklib</type> 
     <scope>compile</scope> 
    </dependency> 
    <dependency> 
     <groupId>com.android.support</groupId> 
     <artifactId>appcompat-v7</artifactId> 
     <version>18.0.0</version> 
     <type>jar</type> 
    </dependency> 
    <dependency> 
     <groupId>com.android.support</groupId> 
     <artifactId>support-v4</artifactId> 
     <version>18.0.0</version> 
    </dependency> 

我已经把这些相关的POM文件,但它说,把机器人:主题=“@风格/ Theme.AppCompat.Light”的清单,同时清理并生成我把它放在清单,但仍然我得到了同样的错误。但是当我改变

<dependency> 
     <groupId>com.android.support</groupId> 
     <artifactId>appcompat-v7</artifactId> 
     <version>18.0.0</version> 
     <type>apklib</type> 
    </dependency> 

<dependency> 
     <groupId>com.android.support</groupId> 
     <artifactId>appcompat-v7</artifactId> 
     <version>18.0.0</version> 
     <type>apklib</type> 
     <scope>compile</scope> 
    </dependency> 

它编译,并在Android,但Android清单运行仍显示在Android红线:在eclipse主题= “@风格/ Theme.AppCompat.Light” 。所以我不知道该怎么办,以消除蚀这条红线错误清单文件

+0

如果你还没有解决这个问题,但你也需要在eclipse中有库。 Android-Maven插件只能在构建时处理依赖关系。 Eclipse正在生成警告,并且无法处理依赖关系。 –