问题标签 [library-project]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1024 浏览

android - 在重新启动 Eclipse 之前,不会应用对 Android 库项目的更改

我有一个使用 Android 库项目的主要 Android 应用程序。当我更改我的库项目时,Build Project或者Build All在我清理主项目或关闭并重新打开 Eclipse 之前,在主项目中未检测到更改。

我如何解决这个问题?有什么快速的解决办法吗?

更新

我在用:

日食 3.7.1

Android SDK API 15 修订版 3

Android SDK 工具第 19 版

Android SDK 平台工具 Rev 11

0 投票
2 回答
229 浏览

android - Android 库项目库依赖项

我目前正在开发一个使用多个库的项目。多个库使用 android 支持库,所以当我想编译我的应用程序时,Eclipse 会用 Dalvik 错误来抱怨它。我已经发现我的项目中应该只使用支持库 1 次。但是,这破坏了导致我无法再编译的库项目。

我应该如何正确处理这个?

0 投票
2 回答
2098 浏览

android - 导出android库项目以供重用,无需源代码

出于安全原因,我需要在没有源代码的情况下导出库项目。不幸的是,库项目中生成的 jar 文件不包含资源。我不能指望这个图书馆的用户处理图书馆需要的任何资源。

有与此类似的帖子,但我还没有看到解决方案。

0 投票
1 回答
90 浏览

android - Android库如何编译排序?

我在 Android 库上遇到编译问题。假设存在四个库项目(LPA、LPB、LPC、LPD)和一个主要应用程序(MP)。LPB 参考 LPA。LPC 和 LPD 参考 LPB。MP 参考 LPC 和 LPD。

当我点击 clean all 并 compile all 时,eclipse 的 package explorer 肯定会出现很多红叉和红色问号。

如何解决这个问题呢?是我按顺序编译 LPA、LPB、LPC、LPD 和 MP。我认为这很愚蠢,但我没有其他解决方案。

因此,任何人都可以知道如何设置构建环境以按顺序编译所有项目。

非常感谢。

更新:

http://dl.dropbox.com/u/78582670/main.png

这是我的主要应用程序项目设置。我看不到其他图书馆项目。

0 投票
3 回答
966 浏览

java - 如何使用依赖于 Java 项目的 Ant 构建 Android 项目?

我有一个 Android 库项目 AndroidLib,它依赖于我的工作区 JavaLib 中的一个 Java 项目。

在 Eclipse 中,这是通过将 JavaLib 项目添加到 Java Build Path > Projects for AndroidLib 并将其设置为在Order and Export选项卡中导出来完成的,并且构建良好。

然而,在构建 AndroidLib 时,Ant 似乎并没有获得对 JavaLib 项目的依赖(我已经运行了 android update lib-project)。将此依赖项添加到我的 build.xml 的最佳方法是什么?

0 投票
1 回答
1138 浏览

android - 覆盖 Android 库项目中的类

我用类似的代码制作了几个 Android 应用程序,但我需要保持灵活来自定义应用程序。我现在的解决方案是,我有一个库项目,我可以通过扩展类来覆盖项目中的功能。对于以下示例,我将 Library Project 称为 PL。P1 是一个使用 PL 的定制项目,P2 是另一个使用 PL 的定制项目。

我现在的问题是,在 PL 中我想从 StudentPL.java 创建一个实例。在 P1 中,不需要对 StudentPL 进行任何更改,因此编译器应该采用此类,但在 P2 中,我有 StudentP2.java,它从 StudentPL.java 扩展而来。所以PL做的实例,应该是StudentP2.java的实例。

我现在的想法是,我制作了一个名为 mirror 的包,它直接位于 Project PL 的 src-Folder 中。在那里,我创建了从 StudentPL.java 扩展的类 mirror.Student.java。在 Library-Project 中,我现在创建了 Student.java 的一个实例。对于项目 P1,不需要进行任何更改。在 P2 中,我在 src 文件夹中创建了相同的文件夹镜像,并且现在创建了从 StudentP2.java 扩展的相同类 mirror.Student.java。想法是,ClassLoader 现在从 P2 加载 mirror.Student.java 并忽略来自 PL 的 mirror.Student.java,但这会导致以下错误:

  • Dex Loader] 无法执行dex:多个dex文件定义了Lmirror/Student;
  • 转换为 Dalvik 格式失败:无法执行 dex:多个 dex 文件定义 Lmirror/Student

这是我正在谈论的UML:

http://www.koenix-band.ch/images/other/Stackoverflow.gif

也许我应该覆盖 ClassLoader,但我不知道该怎么做?有没有人有解决这个问题的想法?也许有人有另一个想法,我如何自定义应用程序。

迈克尔

0 投票
1 回答
98 浏览

android - 为什么我可以将另一个Android项目用作库项目而不设置为库项目?

好的,我知道如何将 Android 项目设置为库项目并将其添加到另一个 Android 项目作为库引用。

然而,在我这样做之后,我删除了“是库”的复选标记,所以第一个项目不是库项目,可以作为普通的 Android 项目运行。

引用第一个项目的第二个项目也运行良好,我可以更改第一个项目并仍然直接在第二个项目中使用它。

那么,当我之后可以删除复选标记并且引用仍然有效时,为什么将项目设置为库大惊小怪呢?我不明白 - 谁能解释一下?

我将 Eclipse 3.7 (Indigo) 与 ADT 插件版本 21 一起使用。

0 投票
1 回答
2052 浏览

android - Android 库项目 - 调用 context.getResources().openRawResource() 时出错

我正在开发一个 android 库项目,它应该从其原始资源中的 xml 文件中读取(我们称之为 xml_file_name.myextension)。

我所做的基本上是创建一个包含这些文件夹的库项目的 jar 文件:

  • 源代码
  • 资源/原始

并将其作为测试应用程序中的库引用。这是我用来(在库项目中)获取 xml 文件的代码:

(我有应用程序上下文,因为应用程序将其显式传递给库项目。)

发生的情况是,当我启动测试应用程序(并调用读取 xml 文件的方法)时,我收到此错误:

安卓控制台错误

看来xml文件实际上是在正确的文件夹中,因为:

1)for循环实际上打印“找到原始资源:xml_file_name.myextension”和“xml_file_id:2130968576”

2)如果我在应用程序的res/raw文件夹中放了一个名为“xml_file_name.myextension”的文件,它不会编译,并且错误是:“Error generate final archive: Found duplicate file for APK: res/raw/xml_file_name .myextension”。这基本上证明了该文件是从库项目中正确“导入”的。

请注意:我也尝试过这种其他方式

得到同样的错误。

老实说,我不明白可能是什么问题..我做错了什么?


编辑:

对于任何对此问题感兴趣的人:我终于意识到这是不可能的,主要是因为当我尝试通过 context.anymethod 获取资源时,我指的是应用程序的 R 文件,所以我无法给出从中获取的资源 ID我的库项目的 R 文件。

它将编译,因为库项目 jar 文件包含资源(R.raw.xml_file),但对 context.something 的调用将始终给出 null 作为结果,因为它引用了没有那个特定的 app R 文件里面的资源。

我最后不得不把我的 xml 文件放在应用程序的 res/raw 文件夹中,并以这种方式访问​​ xml_file 原始资源:

0 投票
0 回答
186 浏览

android - 我应该如何处理 Android 中库项目的多个位置?

我正在开发一个开源 Android 应用程序。我想使用多个开发平台。第一个是我的Gentoo盒子,我在其中使用antemacs开发(因为我已经使用emacs了多年,而 Gentoo 目前缺乏对足以支持 ADT 的新 Eclipse 版本的支持)。另一个是我的 Android 平板电脑上的AIDE

我目前遇到的主要问题与我将ActionBarSherlock用作库项目有关。自然,图书馆项目的位置在 Gentoo 盒子和平板电脑上是不同的。如果有人克隆了存储库,我想让他们尽可能轻松地进行设置。

现在,在我看来,这与通过sdk.dirlocal.properties文件中设置解决的问题相同。所以我的第一个想法是添加一个abs.dir=<path to ActionBarSherlock>设置,local.properties然后我在project.properties. 这样做ant在 Gentoo 盒子上效果很好。

但是,它似乎不适用于平板电脑上的 AIDE。由于local.properties没有签入 git repo,我在平板电脑上创建了一个新的,abs.dir指向 ActionBarSherlock 的平板电脑位置。但是 AIDE 似乎没有使用它(即使它在build.xml文件中被引用)。我知道如何设置 AIDE 以使用库项目,但这会修改project.properties​​(已签入 git repo)以获得 ABS 平板电脑位置的完整路径,这绝对不是我想要的(我当然不每次在平板电脑和 Gentoo 盒子之间切换时都必须更新该文件)。

那么有没有一种方法可以在antEclipse / AIDE 和 Eclipse / AIDE 中进行设置,而只需要修改系统之间的单个设置?或者我是否需要更新项目的 README 以包含有关如何设置的详细说明列表?

0 投票
2 回答
1666 浏览

android - 混淆 JAR 的 Android 库项目

我有一个巨大的 android 库项目。而且我必须混淆从视图扩展的类。

我无法理解 proguard 的使用。我应该怎么做?你能一步一步描述我需要做什么吗?