Eclipse Android项目,如何在工作区中引用库?

2023-12-23

我按照我在这里找到的一些步骤(现在找不到 URL,抱歉)将 Eclipse 中的 Android 项目转换为布局,其中 99.9% 的代码位于库项目中,然后我在下面还有另外 2 个 shell 项目相同的工作区,主要只是 AndroidManifest.xml 文件和一些资源文件。这样做是为了我可以支持同一项目的 2 个版本,两个版本之间只需进行一些小的文本/图标更改。应用程序名称也不同,因此我可以同时在 Android Market 上发布这两个版本。

自从我这样做以来,大约每编译 10 次,也许每一两天一次,我都会收到“dalvik 错误 1”和有关“Access 已存在”的信息(Access 是我的库项目中第一个 Java 单元的名称) 。

为了“解决”这个问题,我进入我正在尝试构建的存根项目的 Java 构建路径,并从库选项卡的主库中删除 JAR 文件。然后我就可以构建而不会出现错误。

然后一段时间后(也许 1 或 2 天),当我编译我的存根项目(不是我的库)时,我会收到有关缺少类的错误。因此,我将返回到 Java 构建路径,并将对 JAR 文件的引用放回原处,一两天后一切都恢复正常,然后我又回到与之前相同的错误。

这只是一个已知问题并且是我需要做的事情,还是我可以通过重组我的项目/工作空间来解决?目前我有:

Lib 项目 - 构建路径上只有 2 个库:Android 2.1 和 com.android.ide.eclipse.adt.LIBRARIES

使用上述 lib 的第一个存根项目 - 具有与上述项目相同的 2 个库,另外有时我使用“添加 JAR”来包含上述项目的 bin\ 文件夹中的 JAR。

第二个存根项目 - 与第一个存根项目相同的库

我是否应该使用构建路径选项下的其他选项卡之一引用“lib 项目”中的 JAR?也许是“项目”选项卡,或者“源”选项卡?我目前在任何其他领域都没有它。

当我进入奇怪的状态时,执行“清理项目”也无济于事,我已经尝试过几次并在清理之间打开/关闭 IDE,但没有解决。

此时我们正处于最后的测试阶段,所以我的日常任务是:

  1. 在 LIB 项目中进行小更新(错误修复)

  2. 使用发布向导导出项目并更新 Android Market 和我们保存 APK 文件的其他位置

因此,我希望这些步骤保持简单,无需打开/关闭多个工作区或在可能的情况下执行大量构建步骤。


经典的 Eclipse/Java 方式

添加(工作区)库

  • 右键单击要插入的项目。
  • Click Properties.
  • Select Java Build Path.
  • 选择Libraries tab.

现在,这取决于您如何编译库。 所以要么做一个Add JARs... or an Add Class Folder。 选择external使用外部源的变体。 就是这样。

添加工作区项目

  • 右键单击要插入的项目。
  • Click Properties.
  • Select Java Build Path.
  • 选择Projects tab.

Click Add...在右侧,您就完成了。

额外的Android方式

需要两个步骤:

  • 将要用作库项目的项目标记为
  • 引用标记的项目

标记库项目

右键单击您的项目并选择Properties。 选择Android并勾选左侧的复选框IsLibrary. Done.

引用标记的项目

右键单击您的项目并选择Properties。 选择Android在左边和Add...您标记的项目。它将被添加到列表中并可供使用。现在您可以从引用的、标记的项目中访问所有类和资源(例如绘图、字符串)。太棒了,嗯? :)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Eclipse Android项目,如何在工作区中引用库? 的相关文章

  • Xamarin Android Webview Javascript

    我正在尝试通过 Xamarin for Android 创建一个移动应用程序 它有一个显示网站的 WebView 问题是正常按钮会触发 但 javascript 事件不会触发 我已经启用了 Javascript 但没有运气 如何在 Andr
  • 从响应中获取标头(Retrofit / OkHttp 客户端)

    我正在使用 Retrofit 与 OkHttp 客户端和 Jackson 进行 Json 序列化 并希望获取响应的标头 我知道我可以扩展 OkClient 并拦截它 但这发生在反序列化过程开始之前 我基本上需要的是获取标头以及反序列化的 J
  • 通过 WhatsApp 发送消息

    由于我发现了一些较旧的帖子 表明 Whatsapp 不支持此功能 我想知道是否发生了变化 以及是否有办法打开与我通过意图发送的号码进行 Whatsapp 聊天 UPDATE请参阅https faq whatsapp com en andro
  • 在 Bash 中监控 tomcat,直到它完成部署 war 或应用程序

    怎么可能Tomcat在 bash 脚本中进行监控以检测它是否完成了战争或应用程序的部署 应用场景 Tomcat 开始于systemd Tomcat 开始于catalina sh 使用 Tomcat 管理器 Tomcat从Eclipse启动
  • 在 Cordova 应用程序中获取额外功能

    我们有两个 Android 应用程序 一个使用本机 Java 实现 另一个使用 Ionic 编写 Ionic 应用程序启动我的应用程序 这是使用灯插件 https github com lampaa com lampa startapp 我
  • ExoPlayer2 - 如何使 HTTP 301 重定向工作?

    我开始使用 ExoPlayer 来传输一些音频 一切都很顺利 直到我遇到一个带有 301 永久移动 重定向的 URL ExoPlayer2 默认情况下不处理该问题 我已经看过这个线程 https github com google ExoP
  • Android 手机作为 GSM 调制解调器在 PC 上发送/接收短信?

    是否可以将 Android 移动设备用作 PC 上的 GSM 调制解调器 我正在 net下开发应用程序来发送 接收短信等 现在我想通过 USB 将我的 Android 设备连接到我的 PC 并将其用作 GSM 调制解调器来与其通信 这里是参
  • 当 OnFocusChangeListener 应用于包装的 EditText 时,TextInputLayout 没有动画

    不能比标题说得更清楚了 我有一个由文本输入布局包裹的 EditText 我试图在 EditText 失去焦点时触发一个事件 但是 一旦应用了事件侦听器 TextInputLayout 就不再对文本进行动画处理 它只是位于 editText
  • 图像作为电子邮件附件

    我想构建一个应用程序 我可以在电子邮件中附加图像 打开图像并将其设置为我的壁纸 我想让它跨平台 所以你能告诉我是否可以使用phonegap 或者我是否必须为iphone和android构建一个本机应用程序 您好 如果您只想通过电子邮件附加图
  • 从 BroadcastReceiver 类调用活动方法

    我知道我可以做一个内部接收器类来调用接收器中的任何方法 但我的主要活动太大了 要做的事情也很多 因此 我需要一个扩展广播接收器的类 但它不是内部类 并且可以从我的主要活动中调用一种方法 我不知道是否可能 但我的活动是家庭活动和 single
  • 如何在谷歌地图android上显示多个标记

    我想在谷歌地图android上显示带有多个标记的位置 问题是当我运行我的应用程序时 它只显示一个位置 标记 这是我的代码 public class koordinatTask extends AsyncTask
  • Android - AudioRecord类不读取数据,audioData和fftArray返回零

    我是 Android 新手 一直在开发音调分析器应用程序 最低 SDK 8 我读了很多关于如何实现 Audiorecord 类的文章 但我想知道为什么它在我录制时不读取任何数据 我尝试显示 audioData 和 fftArray 的值 但
  • 打印 OSGI 包类路径?

    在普通的 java 应用程序中 可以使用以下命令打印类路径的内容 String ss System getProperty java class path System out println ss 但是如何打印使用 eclipse PDE
  • 在命令行上卸载 Android SDK 的选定部分

    这与 卸载旧的 Android SDK 版本 https stackoverflow com questions 15182377 uninstall old android sdk versions 除非我想在无头 Linux CI 服务
  • 如何检查 Android 中的同步设置

    我正在构建一个 Android 应用程序 我需要检查设备中注册的每个单独帐户的同步设置 我知道我可以通过 ContentResolver 类来做到这一点 但我遇到了一些问题 我已设法获取设备上所有帐户的列表 但我不知道在运行时从哪里获取特定
  • 错误:(23, 13) 无法解决:com.google.android.gms:play-services:11.2.0“安装存储库和同步项目”不起作用

    我正在尝试在我的 Android 应用程序中获取位置并更新到服务器 这是我的 Gradle 代码 我在这里包含了compile com google android gms play services 11 2 0 这条线是从文档中 htt
  • java.lang.OutOfMemoryError:Scala 上超出了 GC 开销限制

    我是 Scala 开发人员 我在Routes它包含的文件1008行如果我添加另一行 则会抛出下面的错误 Uncaught error from thread sbt web scheduler 1 shutting down JVM sin
  • Android 后台倒计时器

    我有一个 Android 应用程序 它管理一个倒计时器 类 CountDownTimer 它显示在应用程序屏幕中 以显示到达 00 00 还剩多少时间 我现在的问题是 当我按主页按钮或启动另一个应用程序时 应用程序 计时器不会在后台运行 所
  • 发布的 Android apk 出现错误“包文件未正确签名”

    我最近将我的应用程序上传到 Android 市场 但是由于错误 下载时它拒绝运行 包文件未正确签名 我首先使用 eclipse 发布了数据包 右键单击导出 创建密钥库然后发布 但它拒绝工作 然后我下载了 keytool 和 jarsigne
  • Git 实验分支还是单独的实验存储库?

    我正在开发一个 Android 应用程序 并且在整个开发周期中一直使用 Git 现在 我想构建并发布实验性功能 供人们尝试和安装 同时仍将原始的 稳定的应用程序安装在他们的设备上 现在 这意味着我需要使用不同的包名称 这会更改开发项目中的一

随机推荐

  • 如果存在内部类,包含美元符号的 Java 类名将无法编译

    我定义了以下 Java 类 mac grek javajunk grek cat A B java class A B mac grek javajunk grek cat A java public class A public stat
  • 在单个 JBoss 实例上设置多个端口?

    问题背景 情况是这样的 我们正在运行一个来自战争的模拟器 servlet 我们正在模拟的 servlet 在一台机器上有许多实例 按端口号进行区分 我们只想部署一场可以通过许多端口访问的战争 到目前为止我们所拥有的 使用javaFilter
  • 并行处理多个文件的 bash 脚本

    我读过有关该主题的类似问题 但没有一个可以帮助我解决以下问题 我有一个 bash 脚本 如下所示 bin bash for filename in home user Desktop emak fa do mkdir filename cd
  • Rails 和页面特定的 Javascript

    好吧 我意识到这个问题已经被问过很多次了 但答案似乎从未解决我对此的问题 我有一个 js 文件 我只想将其包含在特定页面上 有许多回复建议我将文件放入文件夹中 然后在清单文件中仅引用这些文件夹 例如这个 Railscast 大约 06 20
  • 使用 Angular 2 处理 HTML5 事件(onfocus 和 onfocusout)

    我有一个日期字段 我想默认删除占位符 我正在使用 JavaScriptonfocus and onfocusout删除占位符的事件 任何人都可以帮助使用 angular2 指令吗
  • 为什么数组名称后面有括号和点而不是方括号?

    访问数组中的元素时 方括号的使用方式如下 X is an int and Numbers is an int array X Numbers 8 然而 在阅读其他人的代码时 我有时会发现以下语法 PBox SBox1 SBox2 are a
  • std::move 位于移动赋值运算符内

    我读到另一个问题 https stackoverflow com a 5976829 440509在实现移动构造函数时 最好对初始化列表中的每个成员进行 std move 因为如果该成员恰好是另一个对象 则将调用该对象的移动构造函数 就像这
  • HttpWebRequest getRequestStream 在多次运行时挂起

    我编写了一些代码来从侦听器发送和读取文本 这在第一次和第二次交换上运行良好 但在第三次发送时 调用之间有很长的延迟GetRequestStream 以及数据的实际写入 我已经按照此处的建议在发送端处理了输出流 以及流读取器和读取端的输入流
  • 在 R Synth 包中使用 dataprep 函数时出现令人困惑的错误

    我正在尝试使用 R 中的 Synth 包来探索某些政变对发生国家经济增长的影响 但我陷入了一个我无法理解的错误 当我尝试跑步时dataprep 我得到以下信息 Error in dataprep foo World predictors c
  • TypeError:callback.apply 不是allowDiskUse 之后的函数

    我有一个包含 100 万份文档的集合 我已经通过了以下选项allowDiskUse现在它抛出错误 TypeError callback apply is not a function 我已经搜索过这个但可以获得解决方案 请帮助 const
  • 有四个图标的工具栏如何设置像这样?

    有四个图标的工具栏如何设置像这样 我想在工具栏中设置四个类似图像的图标 我有制作工具栏 在 menu main xml 中设置图标 但我没有得到 为什么有人可以帮助我为什么它没有出现 样式 xml
  • 在 python 中使用 get_nowait() 不会引发空异常

    我有一个进程间队列 通常是空的 并且偶尔会出现一些东西 在我的一个线程中 我想定义一个像这样的 while 循环 def mythread queue1 while queue1 get nowait 1 do stuff 这非常有效 直到
  • 删除 T-SQL 文本中的所有注释

    我正在尝试删除所有评论NVARCHAR value 我不知道我会得到哪个值NVARCHAR变量 我需要删除所有以 开头的注释 直到行尾 例如 Some Comments SET NOCOUNT ON Some Comments SELECT
  • 如何在 Php 中将日期增加一天?

    我正在使用这种语法来增加上面的一天 但是当我输入这种格式时 它仍然给我这样的错误日期 01 01 1970 但我想要像 25 08 2016 这样的格式和日期 today 24 08 2016 nextday strftime d m Y
  • 绝对位置和保证金:自动

    我有一个小问题 我希望我的页脚停留在屏幕底部position absolute 但我的margin auto将其放在屏幕中间不再起作用 html
  • 3rd 方库“cordova-plugin-ms-azure-mobile-apps”在我的 Ionic 2 应用程序中未被识别

    在过去两天到处查看 并浏览各种网站上过去的论坛主题 并且没有解决方案之后 我在这里发帖作为最后的手段 我知道每个人都很忙 但这让我很累 我已经尝试了一切可能的方法 从多次从头开始创建应用程序 到一次添加一个库 然后运行并确保它正常工作 然后
  • 使用 MYSQL 数据库数据加载 Javascript 数组

    假设我有一个javascript数组 userName 我想从名为 user 的数据库表加载它 任何人都可以帮忙提供想法或示例代码吗 Thanks 你必须使用mysql connect mysql select db PHP 中的函数连接到
  • 使用 Amazon SQS 的最佳实践 - 轮询队列

    我正在设计一项为我们的电子商务网站发送电子邮件的服务 订单确认 提醒等 计划采用 SendEmail 方法 该方法生成代表要发送的电子邮件的 XML 块 并将其粘贴到 Amazon SQS 队列中 我的网络应用程序和其他应用程序将使用它来
  • Bootstrap 3 - 删除 md 和 lg 之间的断点

    我正在使用 Bootstrap 3 并尝试删除 排除中型和大型设备之间的断点 我有一个现有的网站 已优化为 970 像素 看起来很棒 我想做的是删除 md gt lg 断点 以便即使在大宽屏桌面上 最大主体宽度为 970px 并且仍然居中
  • Eclipse Android项目,如何在工作区中引用库?

    我按照我在这里找到的一些步骤 现在找不到 URL 抱歉 将 Eclipse 中的 Android 项目转换为布局 其中 99 9 的代码位于库项目中 然后我在下面还有另外 2 个 shell 项目相同的工作区 主要只是 AndroidMan