生成兼容性库v7-appcompat的APKLIB

5
我想开始使用appcompat-v7支持库的新ActionBar,并且我正在使用maven。我尝试创建一个apklib。这是我遵循的步骤:
  1. 创建项目android-sdks/extras/android/support/v7/appcompat的ZIP文件。
  2. 将ZIP文件重命名为APKLIB扩展名。
  3. 将APKLIB文件安装到本地存储库中:

C:....m2\repository\android\support\compatibility-v7-appcompat\18>mvn install:install-file -Dfile=appcombat.apklib -DgroupId=android.support -DartifactId=appcompat -Dversion=18 -Dpackaging=apklib

在我的Android项目中添加此依赖项的POM文件以开始使用该库:

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

但它没能正常工作。我收到了"missing artifact"错误。
非常感谢您的帮助。

不必创建新的依赖项,你可以在Maven中包含官方Android支持库 - JavierSP1209
3个回答

8
这是一种在不依赖Maven SDK部署程序的情况下将appcompat安装到本地仓库的方法...
从Android SDK Manager中安装“Android Support Repository”选项。 进入SDK文件夹,然后进入./extras/m2Repository/com/android/support/appcompat-v7/18.0.0
打开appcompat-v7-18.0.0.aar文件,并将classes.jar复制到名为appcompat-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

1

是的,谢谢,但我想学会自己生成它。 - nano
1
我不确定如何使用maven-android-sdk-deployer安装compatibility-v7-appcompat v19。 我运行mvn install -P 4.4,但compatibility-v7-appcompat v19未安装在我的本地maven存储库中。我应该运行什么命令? - Giorgio
1
只需导航到目录(maven-android-sdk-deployer / extras / compatibility-v7-appcompat),然后运行“mvn clean install”即可(尽管我不确定是否需要“clean”)。 - kassim

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文件中添加了这些依赖项,但是在清理和构建时它说要在清单中放置android:theme="@style/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上编译并运行,但是在Eclipse中的Android清单仍然显示红线,指向android:theme="@style/Theme.AppCompat.Light"。因此,我不知道该怎么做才能在清单文件上消除这个红线错误。


如果您还没有解决这个问题,您还需要在Eclipse中安装该库。Android-Maven-plugin只处理构建时的依赖关系。Eclipse正在生成警告,并且无法处理这些依赖项。 - George Baker

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接