我试图让一个游戏项目与平台无关,所以我把它分成三个项目,从低级别到顶级的android特定级别,如:引擎,游戏,安卓游戏.
错误中涉及的类/接口是:
(低级)引擎项目定义了这个接口:
com.myteam.engine.IGame
Run Code Online (Sandbox Code Playgroud)(中级)平台独立游戏项目定义了这些类:
com.myteam.myproject.Game
com.myteam.myproject.MyProject (derived from com.myteam.myproject.Game)
Run Code Online (Sandbox Code Playgroud)(顶级)android项目实现活动等:
com.myteam.myproject.android.MyAndroidActivity (using com.myteam.myproject.MyProject)
Run Code Online (Sandbox Code Playgroud)所有编译良好并在Windows下完美运行(使用前两个在3级上的另一个Windows项目).
但是当使用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 …Run Code Online (Sandbox Code Playgroud)