Eclipse/ADT 下的 Android 活动与项目依赖关系(无法解析 XY)

2023-11-24

我试图让游戏项目完全独立于平台,所以我将它分成三个项目从低级到顶级 Android 特定级别,例如:引擎、游戏、Android 游戏。

错误中涉及的类/接口是:

  1. (低级)引擎项目定义了这个接口:

    com.myteam.engine.IGame
    
  2. (中级)平台独立游戏项目定义了这些类:

    com.myteam.myproject.Game
    com.myteam.myproject.MyProject (derived from com.myteam.myproject.Game)
    
  3. (顶层)android项目实现activity等:

    com.myteam.myproject.android.MyAndroidActivity (using com.myteam.myproject.MyProject)
    

所有这些都可以在 Windows 下编译良好并完美运行(另一个 Windows 项目在第 3 级使用前两个)。

但是,当使用 ADT 运行时,当 Activity 启动时,它会在运行时失败。 Android 应用程序基本上只是显示一个带有“NoClassDefFoundError com.myteam.myproject.MyProject”异常的调用堆栈。

该异常似乎是由其超类(或超类的接口)在加载/解析时引起的,如 LogCat 输出所示:

12-20 19:51:51.897: D/ddm-heap(218): Got feature list request
12-20 19:51:52.207: I/dalvikvm(218): Failed resolving Lcom/myteam/myproject/Game; interface 18 'Lcom/myteam/engine/IGame;'
12-20 19:51:52.217: W/dalvikvm(218): Link of class 'Lcom/myteam/myproject/Game;' failed
12-20 19:51:52.227: W/dalvikvm(218): Unable to resolve superclass of Lcom/myteam/myproject/MyProject; (52)
12-20 19:51:52.227: W/dalvikvm(218): Link of class 'Lcom/myteam/myproject/MyProject;' failed
12-20 19:51:52.227: E/dalvikvm(218): Could not find class 'com.myteam.myproject.MyProject', referenced from method com.myteam.myproject.android.MyAndroidActivity.onCreate
12-20 19:51:52.227: W/dalvikvm(218): VFY: unable to resolve new-instance 54 (Lcom/myteam/myproject/MyProject;) in Lcom/myteam/myproject/android/Youcode_AndroidActivity;
12-20 19:51:52.227: D/dalvikvm(218): VFY: replacing opcode 0x22 at 0x0008
12-20 19:51:52.227: D/dalvikvm(218): Making a copy of Lcom/myteam/myproject/android/Youcode_AndroidActivity;.onCreate code (88 bytes)

我尝试在 Android 游戏项目的“构建路径/顺序和导出”Eclipse 项目设置下添加前两个项目,如其他帖子和论坛中所述,但它没有改变任何事情。

我的预感是,清单或项目设置需要再次提及 apk 打包或运行时的包/类依赖项。有任何想法吗?


我有一个三层 Android/Java 应用程序,几乎就像你一样:

  1. 用于低级网络通信的纯 Java 项目
  2. 纯 Java 项目,用于抽象低级项目的功能
  3. 安卓应用程序

上面的每件事都是一个单独的 Eclipse 项目,包含在单个工作区中。

您需要执行以下操作:

  1. 在应用程序的项目属性->Java构建路径->项目下,添加仅Java项目
  2. 在应用程序的项目属性 -> Java 构建路径 -> 订单和导出下,选中仅 Java 项目(这将它们标记为导出)

现在您的应用程序应该构建并运行,无需NoClassDefFoundError例外情况或VFY错误如下:

03-27 21:10:17.120: W/dalvikvm(420): VFY: unable to find class referenced in signature (Labstractionlayer/BaseStationManager;)
03-27 21:10:17.120: W/dalvikvm(420): VFY: unable to find class referenced in signature (Labstractionlayer/BaseStationManager;)
03-27 21:10:17.160: I/dalvikvm(420): Failed resolving Lcom/demo/log/AndroidLogWrapper; interface 253 'Lcommon/Logger/LogWrapper;'
03-27 21:10:17.160: W/dalvikvm(420): Link of class 'Lcom/demo/log/AndroidLogWrapper;' failed
03-27 21:10:17.160: E/dalvikvm(420): Could not find class 'com.demo.log.AndroidLogWrapper', referenced from method com.demo.Application.onCreate
03-27 21:10:17.160: W/dalvikvm(420): VFY: unable to resolve new-instance 218 (Lcom/demo/log/AndroidLogWrapper;) in Lcom/demo/Application;
03-27 21:10:17.170: D/dalvikvm(420): VFY: replacing opcode 0x22 at 0x0003
03-27 21:10:17.170: D/dalvikvm(420): VFY: dead code 0x0005-003c in Lcom/demo/Application;.onCreate ()V
03-27 21:10:17.170: D/AndroidRuntime(420): Shutting down VM
03-27 21:10:17.170: W/dalvikvm(420): threadid=1: thread exiting with uncaught exception (group=0x40015560)
03-27 21:10:17.180: E/AndroidRuntime(420): FATAL EXCEPTION: main
03-27 21:10:17.180: E/AndroidRuntime(420): java.lang.NoClassDefFoundError: com.demo.log.AndroidLogWrapper

顺便说一句,在 ADT r17 之前,您只需执行上面的步骤 1(添加纯 Java 项目)。但从 r17 开始,您还需要执行步骤 2(将仅 Java 项目标记为导出)。

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

Eclipse/ADT 下的 Android 活动与项目依赖关系(无法解析 XY) 的相关文章

随机推荐

  • 如何每两周在周一和周二运行石英时间表?

    我使用以下方式每两周的星期一运行一次计划 ITrigger trigger TriggerBuilder Create StartAt DateBuilder DateOf StartHour StartMinute StartSecond
  • 为什么 Windows 不允许在模拟其他用户时启动 WinSock

    使用我自己的程序或其他程序 如果进程是使用 CreateProcessWithLogonW 或 CreateProcessAsUserW 创建的 则在调用时我无法运行 Winsock 当我创建套接字时它返回此错误 WSAEPROVIDERF
  • 重写 java equals() 方法 - 不起作用?

    我遇到了一个有趣的 而且非常令人沮丧的 问题equals 今天的方法导致我认为经过良好测试的类崩溃并导致一个错误 我花了很长时间才找到它 为了完整起见 我没有使用 IDE 或调试器 只是使用老式文本编辑器和 System out 时间非常有
  • 获取图像输入流的大小

    我需要获取输入流中找到的图像的高度和宽度 这是我所做的 private Boolean testSize InputStream inputStream BitmapFactory Options Bitmp Options new Bit
  • 空查询上的 ALL 运算符 VS Any

    我正在读甲骨文文档在 ANY 和 ALL 运算符上 我很了解它们的用途 除了一件事 它指出 ALL 如果子查询返回零行 则条件计算结果为 TRUE ANY 如果子查询返回零行 则条件计算结果为 FALSE 对我来说这似乎不太符合逻辑 为什么
  • 使用 Tortoise-ORM 在 FastAPI 中进行测试

    我正在尝试编写一些异步测试FastAPI using 乌龟 ORM under Python 3 8但我不断收到相同的错误 见最后 过去几天我一直在试图解决这个问题 但不知何故 我最近在创建测试方面的所有努力都没有成功 我正在关注FastA
  • 如何在单元测试中调用依赖注入类方法?

    我是单元测试和 DI 的新手 无法找到一种简单的方法来调用使用依赖项注入设计的类中的方法 这是我的班级 public class AgentProvisioningServiceHelpher IAgentProvisioningServi
  • 在 FIFO 队列系统中,实现优先级消息传递的最佳方式是什么

    对于不能一致支持优先级消息的消息中间件 例如AMQP 当队列只有 FIFO 语义时 实现优先级消费的最佳方式是什么 一般用例是这样一个系统 当队列中存在大量积压消息时 消费者会先接收较高优先级的消息 然后再接收较低优先级的消息 如果给定的单
  • SQL Server 数据库更改工作流程最佳实践

    的背景 我的小组有 4 个 SQL Server 数据库 生产 UAT Test Dev 我在开发环境中工作 当需要升级我一直在处理的对象 表 视图 函数 存储过程 时 我向我的经理提出请求 他将其升级为测试 测试后 她向升级到 UAT 的
  • 如何在 PHP 中获取已连接客户端的 MAC 和 IP 地址?

    我需要知道连接客户端的 MAC 和 IP 地址 如何在 PHP 中执行此操作 服务器IP 您可以从以下位置获取服务器 IP 地址 SERVER SERVER ADDR 服务器MAC地址 对于 MAC 地址 您可以解析以下输出netstat
  • Java中静态变量和方法的作用域

    我对Java中静态方法的使用有一些疑问 我读到很多地方静态变量是独立于实例的 因此是全局的 public class ThirdClass public static var Java public class Second public
  • GIT 有邪恶双胞胎问题吗?

    在 ClearCase 中 当在两个不同版本的目录中找到具有相同名称的两个文件时 如果元素 OID 不同但名称相同 就会出现邪恶孪生 在 GIT 中 SHA1 id 始终是唯一的 并且具有相同名称的文件始终具有不同的 SHA1 id 我们没
  • 使用 Javascript、HTML5、AngularJS 从浏览器打印嵌入的 PDF

    我正在将 Base64 编码的 PDF 作为字符串从我的服务器加载到我的 JavaScript 中 我的客户端应用程序使用 AngularJS HTML5 我的 HTML 看起来像这样 div div 我的 JavaScript 看起来像这
  • 宽格式数据还是长格式数据效率更高?

    我只是好奇 无论解释如何 以长格式或宽格式存储数据是否更有效 我用过object size 确定内存中的大小 但它们没有显着差异 长的在大小方面稍微更有效 并且该值只是估计 除了原始大小之外 我还想知道哪种格式在建模中使用时的操作效率更高
  • 如何使用 ASP.NET Core 获取当前路由名称?

    我有一个在 ASP NET Core 2 2 框架之上编写的应用程序 我有以下控制器 public class TestController Controller Route some parameter 3 name id int pag
  • 在 Apache Spark 1.3 中向数据框添加一列

    是否有可能以及向数据框添加列的最有效的简洁方法是什么 更具体地说 列可以充当现有数据帧的行 ID 在简化的情况下 从文件中读取而不是对其进行标记 我可以想到如下所示的内容 在 Scala 中 但它完成时出现错误 在第 3 行 而且无论如何看
  • 无法导入 numpy:错误:/usr/lib/liblapack.so.3:未定义符号:gotoblas

    当我尝试导入 numpy 时 出现以下错误 usr local lib python2 7 dist packages numpy linalg init py in
  • Angular 2 注入器层次结构和 NgModule

    我想知道如何NgModule实际上影响 Angular 2 注入器层次结构 具有嵌套模块的应用程序的层次结构是什么样的 它是否为每个模块创建一个新的注入器实例或访问顶级注入器 类似于 Angular 1 x 模块 在大型应用程序中找出树可能
  • 每个 Azure 实例可以拥有多少个角色

    我知道每个实例只能有 1 个 Web 角色 但这也适用于后台角色吗 更详细地说 1 个实例可以运行后台角色和 Web 角色吗 我认为您问题中使用的术语使其他答复者感到困惑 在 Windows Azure 计算中 您拥有云服务 云服务可以被视
  • Eclipse/ADT 下的 Android 活动与项目依赖关系(无法解析 XY)

    我试图让游戏项目完全独立于平台 所以我将它分成三个项目从低级到顶级 Android 特定级别 例如 引擎 游戏 Android 游戏 错误中涉及的类 接口是 低级 引擎项目定义了这个接口 com myteam engine IGame 中级