【问题标题】:How to make m2e-android include native deps for apk packaging?如何使 m2e-android 包含用于 apk 打包的本机 deps?
【发布时间】:2012-06-04 00:36:44
【问题描述】:

this question 的跟进。我正在使用 libgdx,因此根据this wiki page,向我的 POM 添加了(除其他外)以下部门:

        <dependency>
            <groupId>com.badlogic</groupId>
            <artifactId>libgdx-armeabi-gdx</artifactId>
            <version>${libgdx.version}</version>
            <scope>runtime</scope>
            <type>so</type>
        </dependency>

        <dependency>
            <groupId>com.badlogic</groupId>
            <artifactId>libgdx-armeabi-androidgl20</artifactId>
            <version>${libgdx.version}</version>
            <scope>runtime</scope>
            <type>so</type>
        </dependency>

其中libgdx.version 是我在 POM 中设置的属性(当前为 0.9.3,所有工件都加载到 repo 中,更改了 libgdx 本机加载顺序以考虑非标准文件名等)。

问题是:我在 Eclipse 中使用带有 m2e-android 连接器的 ADT,当我从 ADT 启动项目时,它无法在 APK 中找到这些本机库。

另一方面,如果我使用适当的 Maven 目标启动,APK 构建良好,这些 .so 库正确放置在 lib/armeabi 中。

这是当前版本的 m2e-android 的缺陷吗(我确实注意到 GitHub 上的一些错误,但这些错误与 NDK 开发相关,而不是本机依赖项本身),以及 我只需要等待新版本吗?或者我可以在我的 POM 中添加一些东西,让 m2e-android “看到”那些 deps?

【问题讨论】:

    标签: java android eclipse maven m2eclipse


    【解决方案1】:

    不幸的是,m2e-android 还不支持原生库依赖。我们意识到了这个问题,并且存在这些问题。我们可以直接实现对原生库的支持:

    https://github.com/rgladwell/m2e-android/issues/71

    或者我们可以将 ADT APK 原生构建器替换为 Maven APK 构建器:

    https://github.com/rgladwell/m2e-android/issues/67

    非常感激地考虑补丁和拉取请求。

    【讨论】:

    • 澄清一下,关于问题 71 的问题:这是我看到的,我认为它仅与项目中的 NDK 开发有关,而不是外部,预编译的本机依赖项。我是否理解正确它实际上涵盖了这两种情况?
    • 我不确定,可能两者兼而有之,或者您可以针对本机库依赖项打开一个单独的问题。无论哪种方式,最好在 m2e-android 问题跟踪器上请求新功能,或者在邮件列表上提问,然后在 SO 上发布问题。
    • 当然,不过我不确定这个问题的性质。关于邮件列表,链接指向一般的 maven-android 插件组,再加上偶然观察到您在 SO 上很活跃,导致我在这里发帖。最后,关于贡献代码 - 实际上我昨天不小心分叉了这个项目,所以我可能这样做:)。
    • 我确实在这里发帖,但我只在此处打开和关闭,而我一直在监控 maven-android-developers 邮件列表,每当有人在 Github 上提出票时我都会立即收到通知。很高兴你分叉这个项目,如果你对代码有任何疑问,请告诉我。
    猜你喜欢
    • 2018-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-24
    • 1970-01-01
    • 1970-01-01
    • 2011-06-05
    • 1970-01-01
    相关资源
    最近更新 更多