Dor*_*ori 34 java android classnotfoundexception
我的一个应用程序出了问题,我想知道是否有人可以给我任何洞察可能导致它的原因.
我得到一个ClassNotFoundException,下面的重要一行是
E/AndroidRuntime(21982): Caused by: java.lang.ClassNotFoundException: couk.doridori.goigo.customUI.GoBoardView in loader dalvik.system.PathClassLoader@446fc3d0
Run Code Online (Sandbox Code Playgroud)
现在这个应用程序已经出来超过一年和2天前我有两个单独的用户联系我这个问题,一个在HTC野火(2.1)和一个三星Galaxy S(?).现在我无法在我的设备(2.2和1.6)或模拟器(2.1)上重新创建此问题,并且无法解决为什么类加载器无法找到此类的问题.我花了一段时间谷歌搜索无济于事,并希望有人有一些指针!它似乎只是在加载一个活动时,当设置了contentView时,它会尝试给View 扩展一个名为GoBoardView的自定义视图扩展View类,这只是做一些简单的画布绘图,并没有使用任何第三方库或任何其他类会有包名冲突或任何东西.
请帮忙!为了防止它出现构建问题,我正在通过eclipse更新我的所有SDK和ADT,因为它正在构建1.6并使用旧的ADT,但我不知道这是否有助于只是想值得一试.任何建议都会非常感谢!(见下面的编辑)
E/AndroidRuntime(21982): java.lang.RuntimeException: Unable to start activity ComponentInfo{couk.doridori.goigoFull/couk.doridori.goigoFull.Board}: android.view.InflateException: Binary XML file line #14: Error inflating class couk.doridori.goigo.customUI.GoBoardView
E/AndroidRuntime(21982): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2596)
E/AndroidRuntime(21982): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2621)
E/AndroidRuntime(21982): at android.app.ActivityThread.access$2200(ActivityThread.java:126)
E/AndroidRuntime(21982): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1932)
E/AndroidRuntime(21982): at android.os.Handler.dispatchMessage(Handler.java:99)
E/AndroidRuntime(21982): at android.os.Looper.loop(Looper.java:123)
E/AndroidRuntime(21982): at android.app.ActivityThread.main(ActivityThread.java:4603)
E/AndroidRuntime(21982): at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime(21982): at java.lang.reflect.Method.invoke(Method.java:521)
E/AndroidRuntime(21982): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
E/AndroidRuntime(21982): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
E/AndroidRuntime(21982): at dalvik.system.NativeStart.main(Native Method)
E/AndroidRuntime(21982): Caused by: android.view.InflateException: Binary XML file line #14: Error inflating class couk.doridori.goigo.customUI.GoBoardView
E/AndroidRuntime(21982): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:576)
E/AndroidRuntime(21982): at android.view.LayoutInflater.rInflate(LayoutInflater.java:618)
E/AndroidRuntime(21982): at android.view.LayoutInflater.rInflate(LayoutInflater.java:621)
E/AndroidRuntime(21982): at android.view.LayoutInflater.rInflate(LayoutInflater.java:621)
E/AndroidRuntime(21982): at android.view.LayoutInflater.inflate(LayoutInflater.java:407)
E/AndroidRuntime(21982): at android.view.LayoutInflater.inflate(LayoutInflater.java:320)
E/AndroidRuntime(21982): at android.view.LayoutInflater.inflate(LayoutInflater.java:276)
E/AndroidRuntime(21982): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:207)
E/AndroidRuntime(21982): at android.app.Activity.setContentView(Activity.java:1629)
E/AndroidRuntime(21982): at couk.doridori.goigoFull.Board.onCreate(Board.java:31)
E/AndroidRuntime(21982): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
E/AndroidRuntime(21982): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2544)
E/AndroidRuntime(21982): ... 11 more
E/AndroidRuntime(21982): Caused by: java.lang.ClassNotFoundException: couk.doridori.goigo.customUI.GoBoardView in loader dalvik.system.PathClassLoader@446fc3d0
E/AndroidRuntime(21982): at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:243)
E/AndroidRuntime(21982): at java.lang.ClassLoader.loadClass(ClassLoader.java:573)
E/AndroidRuntime(21982): at java.lang.ClassLoader.loadClass(ClassLoader.java:532)
E/AndroidRuntime(21982): at android.view.LayoutInflater.createView(LayoutInflater.java:466)
E/AndroidRuntime(21982): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:565)
E/AndroidRuntime(21982): ... 22 more
Run Code Online (Sandbox Code Playgroud)
编辑
好的,研究一些用户在回答这个问题时评论过的链接,似乎使用错误的上下文来加载活动会导致这个问题.我发现这个有趣的监守一个的2个日志报告我已经发送了这个异常的preceeded
W/ActivityManager( 1222): startActivity called from non-Activity context; forcing Intent.FLAG_ACTIVITY_NEW_TASK for: Intent { flg=0x20000 cmp=couk.doridori.goigoFull/.Games }
Run Code Online (Sandbox Code Playgroud)
这是非常自我解释的 - 问题是我不知道这个活动可以从哪里开始使用非活动上下文,所以我有点难过,认为它可能是一些多任务,如怪癖,它被带回到前台东西 .这显然会导致classLoader出现问题.如果这发生在用户手机上我无法理解为什么我无法重现这一点(大多数其他用户也不能).
我通过有趣的链接找到的另一件事是,有些人因为"不正确的apk安装"而遇到了问题,这可以通过重新安装来解决,我已经问过有问题的用户尝试过(并没有什么区别.)似乎一旦遇到问题(首次使用),它将是持久的.
Reu*_*ton 34
我不禁注意到你的活动名称是,couk.doridori.goigoFull.Board但你遗漏的自定义View类是couk.doridori.goigo.customUI.GoBoardView......看起来你可能有两个不同的包(goigo vs goigoFull).
您是否有机会使用图书馆项目做一些聪明的事情?您需要非常小心代码和布局xml中的完全限定的类名...
(如果没有,请添加有关项目设置的更多信息,并粘贴layoutinflater窒息的布局XML)
我在这里已经讨论过这个问题了:Android:无法实例化activity/ClassNotFoundException但我们找不到明确的答案......但是John J Smith关于正确使用Context的答案很有意思.
有些人也在这个帖子上解决了他们的问题并提出了一些想法.
希望这可以帮助...
(顺便说一下,我很高兴看到另一位Go游戏程序员!)
| 归档时间: |
|
| 查看次数: |
54268 次 |
| 最近记录: |