为Android创建“封闭式”可共享项目

时间:2015-02-23 22:36:02

标签: java android eclipse jar

我一直在尝试使用@ CommonsWare在here上的答案来制作一个Android项目(在Eclipse ADT中)我可以分享,而不会将我的所有代码都交给我与之分享的人(代码有专有的东西)连接到我们的服务器,我们不希望人们在没有这个组件的情况下轻松连接到我们的服务器。)

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

作为一个普通的包含库项目,它运行良好,我可以将大部分逻辑放在一个单独的JAR中,而我在另一个项目中没有任何资源。但理想情况下,我希望整个代码(按钮onClick方法等)也远离窥探,只留下实际资源(因为我明白这是不可避免的)

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

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

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

任何人都知道我做错了什么?

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

1 个答案:

答案 0 :(得分: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。