引用外部项目库源代码树

时间:2012-05-25 03:10:34

标签: android android-library

首先,我知道针对这个主题有几个问题,但没有一个问题对我有帮助。


我正在使用Android / ADT插件开发我的第一个Android项目,我想使用this library。我在SO和官方文档中搜索了如何完成此操作,我找到了how to reference a library project

我运行了以下命令:

$ android update project --target 8 /path/to/workspace/myproject /path/to/workspace/numberpicker/lib
Resolved location of library project to: /path/to/workspace/numberpicker/lib
Updated project.properties
Updated local.properties
No project name specified, using Activity name 'SplashActivity'.
If you wish to change it, edit the first line of build.xml.
Added file /path/to/workspace/myproject/build.xml
Updated file /path/to/workspace/myproject/proguard-project.txt

显然这一步正常。但是当我尝试在xml布局中引用com.michaelnovakjr.numberpicker.NumberPicker时,Eclipse抱怨它无法找到这个类。

然后我找到了this answer并更改了我的project.properties

# Before
android.library.reference.1=/path/to/workspace/numberpicker/lib
# After
android.library.reference.1=../numberpicker/lib

但是没有解决我的问题。

也许重要的是要提到这个库不是Eclipse项目,所以我无法在Eclipse中打开它。

1 个答案:

答案 0 :(得分:1)

库项目必须存在于同一工作空间中才能让Eclipse正确构建依赖项目,有关详细信息,请参阅开发指南Managing Project - Library Projects

  

但是,库项目与标准Android应用程序项目的不同之处在于,您无法将其直接编译为自己的.apk并在Android设备上运行它。同样,您无法将库项目导出到自包含的JAR文件,就像对真正的库一样。相反,您必须通过引用依赖应用程序中的库并构建该应用程序来间接编译库。

     

当您构建依赖于库项目的应用程序时,SDK工具会将库编译为临时JAR文件并在主项目中使用它,然后使用结果生成.apk。如果在应用程序和库中都定义了资源ID,则这些工具可确保应用程序中声明的资源获得优先级,并且库项目中的资源不会编译到应用程序.apk中。这使您的应用程序可以灵活地使用或重新定义任何库中定义的任何资源行为或值。

要使用numberpicker库,您需要将其作为Eclipse中的Android项目导入,选择File -> New -> Other ... -> Android -> Android project,在向导窗口中,选中Create projet from existing source并选择位置。

相关问题