ClassNotFound类存在时的异常,并在Manifest中声明

时间:2012-02-12 16:22:39

标签: java android eclipse

自从将现有项目导入新工作区以来,我一直收到此错误。

02-12 11:30:58.140: E/AndroidRuntime(16605): FATAL EXCEPTION: main
02-12 11:30:58.140: E/AndroidRuntime(16605): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.fttech.full_version_hippos/com.fttech.hh.MenuActivity}: java.lang.ClassNotFoundException: com.fttech.hh.MenuActivity in loader dalvik.system.PathClassLoader[/data/app/com.fttech.hh-1.apk]
02-12 11:30:58.140: E/AndroidRuntime(16605):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1739)
02-12 11:30:58.140: E/AndroidRuntime(16605):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1831)
02-12 11:30:58.140: E/AndroidRuntime(16605):    at android.app.ActivityThread.access$500(ActivityThread.java:122)
02-12 11:30:58.140: E/AndroidRuntime(16605):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1024)
02-12 11:30:58.140: E/AndroidRuntime(16605):    at android.os.Handler.dispatchMessage(Handler.java:99)
02-12 11:30:58.140: E/AndroidRuntime(16605):    at android.os.Looper.loop(Looper.java:132)
02-12 11:30:58.140: E/AndroidRuntime(16605):    at android.app.ActivityThread.main(ActivityThread.java:4123)
02-12 11:30:58.140: E/AndroidRuntime(16605):    at java.lang.reflect.Method.invokeNative(Native Method)
02-12 11:30:58.140: E/AndroidRuntime(16605):    at java.lang.reflect.Method.invoke(Method.java:491)
02-12 11:30:58.140: E/AndroidRuntime(16605):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:841)
02-12 11:30:58.140: E/AndroidRuntime(16605):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:599)
02-12 11:30:58.140: E/AndroidRuntime(16605):    at dalvik.system.NativeStart.main(Native Method)
02-12 11:30:58.140: E/AndroidRuntime(16605): Caused by: java.lang.ClassNotFoundException: com.fttech.hh.MenuActivity in loader dalvik.system.PathClassLoader[/data/app/com.fttech.hh-1.apk]
02-12 11:30:58.140: E/AndroidRuntime(16605):    at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:251)
02-12 11:30:58.140: E/AndroidRuntime(16605):    at java.lang.ClassLoader.loadClass(ClassLoader.java:540)

这是我的清单,其他所有内容都在我的源文件夹中的正确包中。

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.fttech.hh"
android:versionCode="1"
android:versionName="1.0" >
 <uses-sdk android:minSdkVersion="4" />
<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

   <application android:icon="@drawable/ic_launcher" android:label="@string/app_name">
    <activity android:name=".MenuActivity"
              android:label="@string/app_name">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>

    </activity>
    <activity android:name=".Arcade_MainGame"></activity>
    <activity android:name=".MainGame"></activity>
    <activity android:name=".MyPreferenceClass"></activity>
    <activity android:name=".unlockable"></activity>


</application>
</manifest>

有人看到我做错了什么?

3 个答案:

答案 0 :(得分:2)

好的,它在清单中。 MenuActivity是否具有正确的package? MenuActivity是否出现在.apk?

答案 1 :(得分:1)

您使用的是Google Play服务吗?如果您使用的是最新的Google Play服务并面临未找到类的异常,请更新应用程序类

第1步:

public class MyAppCtx extends Application {
  @Override
  protected void attachBaseContext(Context base) {
    super.attachBaseContext(base);
    MultiDex.install(this);
  }
}

第2步: 已更新build.gradle文件:

defaultConfig {
  multiDexEnabled true
}

第3步:

dependencies {
  compile 'com.android.support:multidex:1.0.0'
} 

试试这个并祝你好运!

答案 2 :(得分:0)

我的实时应用程序在没有任何代码更改的情况下开始抛出Activity Not Found Exception。上面接受的答案给了我一些线索,说明我的环境已被破坏。下面的链接解释了破坏我的环境/项目的ADT更改。

我曾禁用导出“Android私有库”以使用ProGuard。类路径配置的更改解决了问题,那就是标记要导出的“Android私有库”容器。

希望这有助于某人 -

http://calyx.hr/weird-runtime-error-after-upgrading-android-development-tools-to-version-22/