【问题标题】:Creating a "closed" shareable project for Android为 Android 创建一个“封闭”的可共享项目
【发布时间】:2015-02-24 08:00:05
【问题描述】:

我一直在尝试使用 @CommonsWare 对 here 的回答来制作一个 Android 项目(在 Eclipse ADT 中),我可以在不将所有代码提供给我与之共享的人的情况下共享该项目(代码有专有的东西要连接到我们的服务器,我们不想让人们在没有此组件的情况下轻松连接到我们的服务器)。

我的项目目前是一个简单的控件(一个按钮),按下它会做一些事情,包括播放音调和向我们的服务器发送信息(有一个界面供用户提供信息)。

作为一个普通的包含库项目,它运行良好,我可以将大部分逻辑放在一个单独的 JAR 中,而无需在另一个项目中使用任何资源。但理想情况下,我希望将整个代码(按钮 onClick 方法等)也包裹起来以免被窥探,只让实际资源保持打开状态(因为我知道这是不可避免的)

我可能误解了 Mark 在他的回答中所写的内容,但我所做的是构建项目,然后选择“导出”,选择“Java|JAR 文件”,然后在工作项目中选择 bin 目录和该目录下的类我想导出(还有“libs”下的一些 JAR)。我从“bin”中选择的类似乎在 JAR 中,但像这样打包在第二个 JAR 中:

JAR
 |
META-INF
libs
bin----
       |
     R.txt
     jarlist.cache
     myprojectname.jar
     AndroidManifest.xml

(引用按钮的类在“myprojectname.jar”中) 当我导入他的项目时(使用主 outsde JAR 并且没有解决方案中建议的源代码)我的主项目无法识别按钮类型。

有人知道我做错了什么吗?

不幸的是,我不能使用 AAR,因为我现在必须与 Eclipse 用户兼容。

【问题讨论】:

  • “很遗憾,我不能使用 AAR,因为我现在必须与 Eclipse 用户兼容”——我会摆脱这些资源。缺少它,我会创建一个 AAR,然后是 convert the AAR into an Eclipse-compatible Android library project 并希望它能坚持下去。
  • 谢谢@CommonsWare - 你想把它作为一个答案(引用你更亲爱的帖子的位),我会接受吗?目前无法取出资源。

标签: java android eclipse jar


【解决方案1】:

现在,我将重点放在 AAR 作为重用单元。然后,您面临的挑战是让 Eclipse 用户能够使用 AAR。为此,我知道有三种可能性:

  1. 如果他们使用 Maven for Android Eclipse 插件,我的理解是它可以处理 AAR 文件,尽管我没有尝试过。

  2. Andmore(Eclipse-for-Android 的长期继任者)有望原生支持 AAR。

  3. 您可以将 AAR 转换为常规的 Android 库项目,因为 AAR 大多只是一个 ZIP 存档。 This Stack Overflow answer 提供了配方(至少是 2014 年有效的配方),this blog post of mine 概述了 a deaar Ruby script that automates the conversion。请注意,自去年夏天以来我没有玩过这个,虽然我不知道有任何 AAR 格式更改会破坏配方或脚本,正如俗话说的那样,YMMV。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-18
    • 2013-04-01
    相关资源
    最近更新 更多