Android:如何使用“uses-library”?

2024-07-01

我的Android应用程序可以分为客户端UI层和API层。我想将它们部署为单独的“应用程序”,以便可以重用 API 层。

在 Eclipse 中,我将它们编写为 2 个独立的 Android 项目。在客户端 UI 项目中,我在其构建路径中声明 API 项目(项目 -> 属性 -> Java 构建路径 -> 项目)。

当通过 Eclipse 部署客户端 UI 项目时(在我实际的 G1 手机上),它也会自动部署 API 项目(打包到 APK 中)。

但是,当启动客户端 UI 应用程序时,我遇到了此错误:

Uncaught handler: thread main exiting due to uncaught exception
java.lang.VerifyError: myapp.android.testuiclient.Main
    at java.lang.Class.newInstanceImpl(Native Method)
    at java.lang.Class.newInstance(Class.java:1472)
    at android.app.Instrumentation.newActivity(Instrumentation.java:1097)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2316)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2417)
    at android.app.ActivityThread.access$2100(ActivityThread.java:116)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1794)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loop(Looper.java:123)
    at android.app.ActivityThread.main(ActivityThread.java:4203)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:521)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:791)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:549)
    at dalvik.system.NativeStart.main(Native Method)

环顾四周,它seems就像我应该在 UI 客户端的清单文件中的应用程序下声明使用库一样。

问题是,我应该在 android:name 下放置什么用于使用库?开发指南说“库的名称”,但是库的名称是什么? (我的意思是,在我的 API“应用程序”中,我没有在任何地方声明任何库名称。)


我不相信<uses-library>在这里相关。

您的选择是:

  1. 将您的“库”实现为 JAR,以便在编译时包含在其他项目中。只要您的图书馆不尝试定义资源,您就处于良好状态。请参阅我的 CWAC 项目github页面 http://github.com/commonsguy有关如何设置的示例。

  2. 将您的“库”实现为包含使用 AIDL 定义的远程服务的单独 APK。不要像目前在 Eclipse 中那样尝试混合它们的构建路径,而是遵循 AIDL 规则并让每个项目使用通用的 AIDL 定义。您还需要安排您的用户安装这两个 APK。

  3. 将您的“库”实现为一个单独的 APK,其中包含ContentProvider。不要尝试像您目前在 Eclipse 中所做的那样混合它们的构建路径,而是遵循ContentProvider规则并让客户端通过ContentResolver和定义的 Uri。您还需要安排您的用户安装这两个 APK。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android:如何使用“uses-library”? 的相关文章

随机推荐

  • iOS 7 UITableView didSelectRowAtIndexPath 以编程方式推送ViewController,动画问题

    编辑 我找到了我自己问题的答案 请看我帖子的底部 我在尝试推动时遇到动画问题UIViewController in didSelectRowAtIndexPath on a UITableView以编程方式 当我在 iOS 6 中运行此代码
  • 除非选择单选按钮,否则如何使复选框变灰?

    对于 javascript 来说非常陌生 但是任何帮助我入门的帮助将不胜感激 我有一个简单的表格 div div
  • AngularJS 和摘要式 HTTP 身份验证

    我正在尝试以角度实现摘要身份验证算法 然而 由于缺乏对 Angular 将发送的请求的了解 我无法实现该目标 我的方法是通过以下方式转换请求 httpProvider defaults transformRequest 路线 但是我提供的功
  • C 中的 const 和指针

    将 const 与指针一起使用可能会导致指针对象无法通过使用相关指针取消引用来修改 但为什么我也不能修改指针不直接指向的内容呢 例如 int a 3 const int ptr a ptr 5 不会编译 但为什么 ptr 2 5 还编译不了
  • 将数组插入postgresql

    我想将 id 数组插入到文件中 但在创建我使用的表时int 并且它具有另一个表的引用 现在如何将数组值存储到特定字段 我知道列必须是相同的类型 而且我还看到有些人已经尝试解决数组问题上的外键 我也根据这个文档尝试过 ELEMENT 但没有成
  • 如何转义 Oracle 中的保留字?

    在 TSQL 中我可以使用类似的东西Select table from tablename选择名为 table 的列 如何对 oracle 中的保留字执行此操作 编辑 我尝试过方括号 双引号 单引号和反引号 它们不起作用 作为进一步澄清 我
  • will_paginate 可以按天排序吗

    设想 我有一个包含数百张照片的图片表 我目前正在使用 will paginate 对每页 100 张照片进行分页 我想继续使用 will paginate 但我希望分页由日期驱动 我已经尝试使用以下方法sort by但我认为这不起作用 pi
  • 如何获取给定 IP 地址的以太网端口?

    我正在尝试编写一个 bash 脚本来获取我知道其 IP 地址的接口的以太网端口 我需要从 ifconfig 获取这个 但似乎无法弄清楚如何去做 有任何想法吗 Thanks 将 127 0 0 1 替换为您要获取其接口信息的 IP 地址 if
  • SharePoint 中的内部名称编码

    这是众所周知的知识 x0020 替换 SharePoint 内部字段名称中的空格 使用 SharePoint Web 服务时 这可能有点像一场噩梦 除非您在比较字段名称时编写替换规则 我刚刚在 SSL2 领域发现了另一个 编码异常 奇怪的是
  • Xcode 4.3.2 足以为 iOS 6 构建应用程序吗?

    在今天宣布 iOS 6 Beta 可供开发人员使用之后 我想知道如果我尽快使用 iOS 6 我是否仍然能够在我的设备 iPhone 上从 Xcode 4 3 2 构建正在进行的应用程序 或者 Xcode 也需要更新吗 更新 目前我的 iPh
  • 如何在 Bean Validation 中设置区域设置

    默认情况下 Bean Validation 是根据 Locale getDefault 获取 Locale 的 这对于整个 JVM 是通用的 如何更改当前 EJB 方法调用的 BeanValidation 的区域设置 我正在使用 JavaE
  • 如何在 pywebview 中使无框窗口可拖动?

    我最近一直在使用 pywebview 和 Flask 来开发桌面应用程序 我想使用无框窗口功能并创建自己的标题栏 但问题是我不知道如何使该无框窗口可拖动 文档说它可以通过拖动任何点来移动 但对我来说情况并非如此 有任何想法吗 拖动区域 ht
  • 使用 pip freeze 安装 numpy

    I need to install Numpy version 1 17 1 but every time it just freezes I have now tried multiple times and I have been wa
  • 如何获取 Angular 5 组件元素的位置?

    在 5 角分量中 我有一个table 我需要创建一些类似叠加多个div上面几个td的 获得这些职位的最佳方法是什么td位于表格中 以便我可以放置其他元素 我目前正在尝试使用类似的东西 ViewChild table tableElement
  • 使用应用程序属性的 @Cacheable 条件

    我正在尝试将 Redis 与 Spring 一起使用 Cacheable但需要根据 Spring Boot 样式应用程序属性有条件地打开或关闭缓存 我的第一次尝试似乎不起作用 application properties 文件 auth t
  • 铆钉、Backbone.View 和 Backbone.Collection

    在过去的视图周中 我尝试了多种方法让 Rivets 与 Backbone View 和 Backbone Collection 配合使用 我在互联网上找到的示例涵盖了我所有的尝试 但我仍然没有成功 这是我目前试图实现的挑战 让 Rivets
  • PostgreSQL - 限制总日志大小

    我有一个非常简单的要求 PostgreSQL 日志目录应该有固定的最大大小 例如所有 PostgreSQL 日志最大 10 GB 它可以通过创建固定大小的日志并使用日志轮换来实现 例如轮换 10 个日志文件 每个日志文件 1 GB 我尝试使
  • 在带有传送器的网格上 A* 可接受的启发法?

    假设您有一个二维单元格网格 其中一些单元格被墙填充 角色可以从一个方格迈出一步 到达距离该方格水平或垂直一步的任何方格 但不能越过墙壁 给定起始位置和结束位置 我们可以使用具有可接受启发式的 A 算法找到从起始位置到结束位置的最短路径 在当
  • 输入宽度与文本区域宽度

    读完主题后输入尺寸与宽度 https stackoverflow com questions 1480588 input size vs width 我很清楚我们不应该使用 size 属性而应该使用 css 样式 输入 文本 和文本区域显示
  • Android:如何使用“uses-library”?

    我的Android应用程序可以分为客户端UI层和API层 我想将它们部署为单独的 应用程序 以便可以重用 API 层 在 Eclipse 中 我将它们编写为 2 个独立的 Android 项目 在客户端 UI 项目中 我在其构建路径中声明