gpt4 book ai didi

安卓强制关闭: ClassNotFoundException for Activity class

转载 作者:IT老高 更新时间:2023-10-28 23:27:47 25 4
gpt4 key购买 nike

当我(即将推出的)android 游戏(来自 eclipse)启动时,它会打开,但会立即强制关闭。

Logcat 说:

07-09 17:12:35.709: ERROR/AndroidRuntime(3866): Uncaught handler: thread main exiting due to uncaught exception
07-09 17:12:35.719: ERROR/AndroidRuntime(3866): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{org.anselm.eickhoff.rhythm/org.anselm.eickhoff.rhythm.RhythmGameActivity}: java.lang.ClassNotFoundException: org.anselm.eickhoff.rhythm.RhythmGameActivity in loader dalvik.system.PathClassLoader@4001e740
07-09 17:12:35.719: ERROR/AndroidRuntime(3866): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2497)
07-09 17:12:35.719: ERROR/AndroidRuntime(3866): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2621)
07-09 17:12:35.719: ERROR/AndroidRuntime(3866): at android.app.ActivityThread.access$2200(ActivityThread.java:126)
07-09 17:12:35.719: ERROR/AndroidRuntime(3866): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1932)
07-09 17:12:35.719: ERROR/AndroidRuntime(3866): at android.os.Handler.dispatchMessage(Handler.java:99)
07-09 17:12:35.719: ERROR/AndroidRuntime(3866): at android.os.Looper.loop(Looper.java:123)
07-09 17:12:35.719: ERROR/AndroidRuntime(3866): at android.app.ActivityThread.main(ActivityThread.java:4595)
07-09 17:12:35.719: ERROR/AndroidRuntime(3866): at java.lang.reflect.Method.invokeNative(Native Method)
07-09 17:12:35.719: ERROR/AndroidRuntime(3866): at java.lang.reflect.Method.invoke(Method.java:521)
07-09 17:12:35.719: ERROR/AndroidRuntime(3866): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
07-09 17:12:35.719: ERROR/AndroidRuntime(3866): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
07-09 17:12:35.719: ERROR/AndroidRuntime(3866): at dalvik.system.NativeStart.main(Native Method)
07-09 17:12:35.719: ERROR/AndroidRuntime(3866): Caused by: java.lang.ClassNotFoundException: org.anselm.eickhoff.rhythm.RhythmGameActivity in loader dalvik.system.PathClassLoader@4001e740
07-09 17:12:35.719: ERROR/AndroidRuntime(3866): at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:243)
07-09 17:12:35.719: ERROR/AndroidRuntime(3866): at java.lang.ClassLoader.loadClass(ClassLoader.java:573)
07-09 17:12:35.719: ERROR/AndroidRuntime(3866): at java.lang.ClassLoader.loadClass(ClassLoader.java:532)
07-09 17:12:35.719: ERROR/AndroidRuntime(3866): at android.app.Instrumentation.newActivity(Instrumentation.java:1021)
07-09 17:12:35.719: ERROR/AndroidRuntime(3866): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2489)
07-09 17:12:35.719: ERROR/AndroidRuntime(3866): ... 11 more

这里有趣的是(我认为):

07-09 17:12:35.719: ERROR/AndroidRuntime(3866): Caused by: java.lang.ClassNotFoundException: org.anselm.eickhoff.rhythm.RhythmGameActivity in loader dalvik.system.PathClassLoader@4001e740

这让我很惊讶,因为我有这个类(在正确的包中)

编辑: 澄清一下,添加了我省略的第一行(连同导入)

package org.anselm.eickhoff.rhythm;
...
public class RhythmGameActivity extends Activity {


/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

}

@Override
public void onPause() {
}
}

仅此而已!

我也在 list 中注册了它:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="org.anselm.eickhoff.rhythm"
android:versionCode="1" android:versionName="pre-alpha">

<uses-permission android:name="android.permission.INTERNET" />
<application android:icon="@drawable/icon" android:label="@string/app_name" android:debuggable="true" android:hasCode="false">

<activity android:name=".RhythmGameActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>

</manifest>

编辑:自从我将 Activity 从 RhythmGame 重命名为 RhythmGameActivity 以来,这一切都开始了,但我很确定我替换了所有引用,所以它可能仍然在某个地方错误地被 chached? (我尝试刷新和清理项目)

非常感谢您的帮助 - 我卡住了!

最佳答案

我在 Eclipse 中使用 Perforce,并发现 Perforce 将源代码控制下的所有文件设为只读的默认行为会导致在 Eclipse 的构建窗口中未明确指定的构建问题。此外,在添加库项目时,我似乎有一个怪癖,即使 .classpath 和 .project 文件是可写的,库也可能无法正确地将自身与项目关联起来。我通常按​​照这些步骤来解决这种性质的错误(这假设项目的 list 是正确的):

1) 关闭 Eclipse。 Eclipse 可能会缓存一些关于文件 R/W 状态的信息。

2) (粗略)通过从源代码管理或操作系统中 check out 项目中的所有文件,使它们都可写。 .classpath 和 .project 至少应该是可写的。

2.5) 如果您将在构建过程中生成且属于 Android 构建过程的正常部分的文件置于源代码管理之下,则应将它们从源代码管理中移除并使其可写。包括但不限于.class和bin和gen目录下的文件。

3) 在 Eclipse 中打开项目。如果没有错误,问题可能会得到解决。

4) 检查项目浏览器并专门查找可能缺少的库项目依赖项。根据我的经验,在项目的资源管理器层次结构中查看所有 lib 项目的目录及其库状态图标非常重要。如果缺少 lib 项目文件夹和图标,请转到 Properties->Android 并选择并添加缺少的 lib(s)。添加库后,选择“应用”并观察项目资源管理器,以确保库图标出现在项目目录中。这一步的解释可能看起来过于详细,但我已经被咬了好几次才强制自己在这里格外小心。如果一个库不会添加,请尝试添加其他虚拟库项目并将它们与您想要的库一起删除。不开玩笑 - 这对我来说有时是必要的。

5) 清理所有项目。

6) 阅读错误列表并解决任何其他错误。

7) 修复您一直推迟修复的所有警告。

8) (不是必需的,但很重要)还原所有未更改的文件并观察更改列表中剩下的内容 - 这些是您将来需要注意的文件,以防止构建问题。

关于安卓强制关闭: ClassNotFoundException for Activity class,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3214026/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com