找不到从方法XXX引用的类XXX.<YYY>

b-r*_*yce 30 android libgdx

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

Could not find class 'com.bbj.cva.CheerVArachnids$PlaceUnitListener', referenced from method com.bbj.cva.CheerVArachnids.<init>
Run Code Online (Sandbox Code Playgroud)

以下是我班级的重要部分:

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());
    }
}
Run Code Online (Sandbox Code Playgroud)

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

Cod*_*oob 46

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

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

为您的Core-和Android-Project执行这些导出设置.

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

  • 正如@umbyslipknot所提到的,当我将jar移动到订单和导出列表的顶部时,这只适用于我.好建议. (4认同)

小智 12

在我的情况下,一切正常,直到我安装了SDK和Eclipse的新更新.

我收到一个错误:"找不到课......"

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

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

  • 它只有在我将jar移动到列表顶部时才有效.非常感谢@syp_dino! (7认同)