3

我有资源可以探索http://code.google.com/p/iosched/。我没有更改清单或代码中的任何内容,因此:

<manifest
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="com.google.android.apps.iosched"

    ....

    <uses-sdk android:minSdkVersion="7" android:targetSdkVersion="15"/>

    ....

    <activity
        android:name=".ui.HomeActivity"
        android:label="@string/app_name"
        android:theme="@style/Theme.Iosched.Home">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

我构建了项目并安装在多个设备(gb、icm)上。启动时它说:

06-03 14:51:40.457: E/AndroidRuntime(1442): 致命异常: main 06-03 14:51:40.457: E/AndroidRuntime(1442): java.lang.RuntimeException: 无法实例化活动 ComponentInfo{com. google.android.apps.iosched/com.google.android.apps.iosched.ui.HomeActivity}:java.lang.ClassNotFoundException:com.google.android.apps.iosched.ui.HomeActivity 06-03 14:51:40.457 : E/AndroidRuntime(1442): 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1983) 06-03 14:51:40.457: E/AndroidRuntime(1442): 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread. java:2084) 06-03 14:51:40.457: E/AndroidRuntime(1442): 在 android.app.ActivityThread.access$600(ActivityThread.java:130) 06-03 14:51:40.457: E/AndroidRuntime(1442 ): 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1195) 06-03 14:51:40.457: E/AndroidRuntime(1442): 在 android.os.Handler.dispatchMessage(Handler.java:99) 06-03 14:51:40.457: E/AndroidRuntime(1442): 在android.os.Looper.loop(Looper.java:137) 06-03 14:51:40.457: E/AndroidRuntime(1442): 在 android.app.ActivityThread.main(ActivityThread.java:4745) 06-03 14: 51:40.457: E/AndroidRuntime(1442): 在 java.lang.reflect.Method.invokeNative(Native Method) 06-03 14:51:40.457: E/AndroidRuntime(1442): 在 java.lang.reflect.Method。调用(Method.java:511)06-03 14:51:40.457:E/AndroidRuntime(1442):在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)06-03 14: 51:40.457: E/AndroidRuntime(1442): 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 06-03 14:51:40.457: E/AndroidRuntime(1442): 在 dalvik.system .NativeStart。主要(本机方法)06-03 14:51:40.457:E/AndroidRuntime(1442):引起:java.lang.ClassNotFoundException:com.google.android.apps.iosched.ui.HomeActivity 06-03 14:51: 40.457: E/AndroidRuntime(1442): 在 dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61) 06-03 14:51:40.457: E/AndroidRuntime(1442): 在 java.lang.ClassLoader.loadClass(ClassLoader .java:501) 06-03 14:51:40.457: E/AndroidRuntime(1442): 在 java.lang.ClassLoader.loadClass(ClassLoader.java:461) 06-03 14:51:40.457: E/AndroidRuntime(1442) ): 在 android.app.Instrumentation.newActivity(Instrumentation.java:1053) 06-03 14:51:40.457: E/AndroidRuntime(1442): 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1974) 06- 03 14:51:40.457: E/AndroidRuntime(1442): ... 11 更多E/AndroidRuntime(1442):引起:java.lang.ClassNotFoundException:com.google.android.apps.iosched.ui.HomeActivity 06-03 14:51:40.457:E/AndroidRuntime(1442):在 dalvik.system。 BaseDexClassLoader.findClass(BaseDexClassLoader.java:61) 06-03 14:51:40.457: E/AndroidRuntime(1442): 在 java.lang.ClassLoader.loadClass(ClassLoader.java:501) 06-03 14:51:40.457: E/AndroidRuntime(1442): 在 java.lang.ClassLoader.loadClass(ClassLoader.java:461) 06-03 14:51:40.457: E/AndroidRuntime(1442): 在 android.app.Instrumentation.newActivity(Instrumentation.java :1053) 06-03 14:51:40.457: E/AndroidRuntime(1442): 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1974) 06-03 14:51:40.457: E/AndroidRuntime(1442): ... 11 更多E/AndroidRuntime(1442):引起:java.lang.ClassNotFoundException:com.google.android.apps.iosched.ui.HomeActivity 06-03 14:51:40.457:E/AndroidRuntime(1442):在 dalvik.system。 BaseDexClassLoader.findClass(BaseDexClassLoader.java:61) 06-03 14:51:40.457: E/AndroidRuntime(1442): 在 java.lang.ClassLoader.loadClass(ClassLoader.java:501) 06-03 14:51:40.457: E/AndroidRuntime(1442): 在 java.lang.ClassLoader.loadClass(ClassLoader.java:461) 06-03 14:51:40.457: E/AndroidRuntime(1442): 在 android.app.Instrumentation.newActivity(Instrumentation.java :1053) 06-03 14:51:40.457: E/AndroidRuntime(1442): 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1974) 06-03 14:51:40.457: E/AndroidRuntime(1442): ... 11 更多iosched.ui.HomeActivity 06-03 14:51:40.457: E/AndroidRuntime(1442): 在 dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61) 06-03 14:51:40.457: E/AndroidRuntime(1442 ): at java.lang.ClassLoader.loadClass(ClassLoader.java:501) 06-03 14:51:40.457: E/AndroidRuntime(1442): at java.lang.ClassLoader.loadClass(ClassLoader.java:461) 06- 03 14:51:40.457: E/AndroidRuntime(1442): 在 android.app.Instrumentation.newActivity(Instrumentation.java:1053) 06-03 14:51:40.457: E/AndroidRuntime(1442): 在 android.app。 ActivityThread.performLaunchActivity(ActivityThread.java:1974) 06-03 14:51:40.457: E/AndroidRuntime(1442): ... 11 更多iosched.ui.HomeActivity 06-03 14:51:40.457: E/AndroidRuntime(1442): 在 dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61) 06-03 14:51:40.457: E/AndroidRuntime(1442 ): at java.lang.ClassLoader.loadClass(ClassLoader.java:501) 06-03 14:51:40.457: E/AndroidRuntime(1442): at java.lang.ClassLoader.loadClass(ClassLoader.java:461) 06- 03 14:51:40.457: E/AndroidRuntime(1442): 在 android.app.Instrumentation.newActivity(Instrumentation.java:1053) 06-03 14:51:40.457: E/AndroidRuntime(1442): 在 android.app。 ActivityThread.performLaunchActivity(ActivityThread.java:1974) 06-03 14:51:40.457: E/AndroidRuntime(1442): ... 11 更多E/AndroidRuntime(1442): 在 java.lang.ClassLoader.loadClass(ClassLoader.java:501) 06-03 14:51:40.457: E/AndroidRuntime(1442): 在 java.lang.ClassLoader.loadClass(ClassLoader.java :461) 06-03 14:51:40.457: E/AndroidRuntime(1442): 在 android.app.Instrumentation.newActivity(Instrumentation.java:1053) 06-03 14:51:40.457: E/AndroidRuntime(1442):在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1974) 06-03 14:51:40.457: E/AndroidRuntime(1442): ... 11 更多E/AndroidRuntime(1442): 在 java.lang.ClassLoader.loadClass(ClassLoader.java:501) 06-03 14:51:40.457: E/AndroidRuntime(1442): 在 java.lang.ClassLoader.loadClass(ClassLoader.java :461) 06-03 14:51:40.457: E/AndroidRuntime(1442): 在 android.app.Instrumentation.newActivity(Instrumentation.java:1053) 06-03 14:51:40.457: E/AndroidRuntime(1442):在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1974) 06-03 14:51:40.457: E/AndroidRuntime(1442): ... 11 更多app.ActivityThread.performLaunchActivity(ActivityThread.java:1974) 06-03 14:51:40.457: E/AndroidRuntime(1442): ... 11 更多app.ActivityThread.performLaunchActivity(ActivityThread.java:1974) 06-03 14:51:40.457: E/AndroidRuntime(1442): ... 11 更多

“java.lang.ClassNotFoundException:com.google.android.apps.iosched.ui.HomeActivity” 看起来很奇怪,因为该类存在。

你有什么建议吗?

ps 我试图清理和修复属性,但徒劳无功。

4

2 回答 2

4

我在 Eclipse 中遇到了同样的问题,那是因为我没有选择导出兼容性包。Eclipse -> Right click on project -> Properties -> Java Build Path -> Order & Export -> Make sure "Private Libraries" are checked.

这个想法是活动在那里没问题,问题是最终的apk文件中不存在FragmentActivity。

于 2013-06-03T11:36:08.500 回答
1
<activity
        android:name=".HomeActivity"
        android:label="@string/app_name"
        android:theme="@style/Theme.Iosched.Home">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
</activity>

如果这不起作用,那么使用它

<activity
        android:name="com.google.android.apps.iosched.HomeActivity"
        android:label="@string/app_name"
        android:theme="@style/Theme.Iosched.Home">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
</activity>
于 2013-06-03T11:31:46.013 回答