30

我正在开发一个 libGDX 项目,我有一个名为 CheerVArachnids 的类,它有另一个内联类,它是一个事件侦听器。当我在桌面上运行这个项目时,它工作正常。但是当我在我的 Android 设备上运行时,它找不到该内联类,并且我收到以下错误:

Could not find class 'com.bbj.cva.CheerVArachnids$PlaceUnitListener', referenced from method com.bbj.cva.CheerVArachnids.<init>

以下是我课堂上的重要部分:

package com.bbj.cva;

public class CheerVArachnids implements ApplicationListener {

    class PlaceUnitListener implements EventSubscriber<PlaceUnitEvent> {

        @Override
        public void onEvent(PlaceUnitEvent event) 
        {   
            //
        }
    }

    public CheerVArachnids() {

        EventBus.subscribe(PlaceUnitEvent.class, new PlaceUnitListener());
        EventBus.subscribe(RemoveScreenObjectEvent.class,
                new RemoveScreenObjectListener());
    }
}

任何想法为什么在Android上,在运行时它找不到那个内联类?

4

3 回答 3

46

由于某些 ADT 版本,您必须设置也应该导出哪些库/项目。

Project-Propiertes -> Java Build Path -> Order and Export -> 检查您正在使用的源代码和其他库。

为您的核心项目和 Android 项目执行这些导出设置。

然后它应该在Android上正常工作。

于 2013-02-08T10:19:25.527 回答
12

就我而言,一切正常,直到我为 SDK 和 Eclipse 安装了新的更新。

我收到一个错误:“找不到课程...”

我在另一个 stackoverflow 站点中找到了解决方案。

使用外部 jar(在我的情况下为 openCSV)时我遇到了类似的问题。我遇到问题的原因是由于 ADT 17(或更高版本)的变化。为了解决这个问题,我需要做的是在 Eclipse 中转到 Properties -> Java build path -> Order and export。标记我的罐子。将 jar 移到列表顶部。解决方案在以下页面中找到,该页面 引用了一篇非常好的文章。

于 2013-05-30T11:34:10.940 回答
0

首先你应该:导入 XXX(Class).java,如果你添加了外部库 jar 文件,将它们导入到 LIB 文件夹中。之后:右键单击您的项目-> 属性-> Java 构建路径-> 订购和导出(选项卡)-> 选择全部-> 按确定-> 清理您的项目。

希望这能解决这个问题

于 2014-03-28T08:44:20.367 回答