1

有人可以告诉我如何解决我的问题吗?我正在构建我的第一个 android 应用程序,下面是我在模拟器中启动应用程序时得到的错误代码。

谢谢

04-12 21:07:03.480: D/AndroidRuntime(327): Shutting down VM
04-12 21:07:03.480: W/dalvikvm(327): threadid=1: thread exiting with uncaught exception(group=0x40015560)
04-12 21:07:03.580: E/AndroidRuntime(327): FATAL EXCEPTION: main
04-12 21:07:03.580: E/AndroidRuntime(327): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{obd.gss.namespace/obd.gss.namespace.activity.Gssobdreadermainactivity}: java.lang.ClassNotFoundException: obd.gss.namespace.activity.Gssobdreadermainactivity in loader dalvik.system.PathClassLoader[/data/app/obd.gss.namespace-1.apk]
04-12 21:07:03.580: E/AndroidRuntime(327):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1569)
04-12 21:07:03.580: E/AndroidRuntime(327):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1663)
04-12 21:07:03.580: E/AndroidRuntime(327):  at android.app.ActivityThread.access$1500(ActivityThread.java:117)
04-12 21:07:03.580: E/AndroidRuntime(327):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:931)
04-12 21:07:03.580: E/AndroidRuntime(327):  at android.os.Handler.dispatchMessage(Handler.java:99)
04-12 21:07:03.580: E/AndroidRuntime(327):  at android.os.Looper.loop(Looper.java:123)
04-12 21:07:03.580: E/AndroidRuntime(327):  at android.app.ActivityThread.main(ActivityThread.java:3683)
04-12 21:07:03.580: E/AndroidRuntime(327):  at java.lang.reflect.Method.invokeNative(Native Method)
04-12 21:07:03.580: E/AndroidRuntime(327):  at java.lang.reflect.Method.invoke(Method.java:507)
04-12 21:07:03.580: E/AndroidRuntime(327):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
04-12 21:07:03.580: E/AndroidRuntime(327):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
04-12 21:07:03.580: E/AndroidRuntime(327):  at dalvik.system.NativeStart.main(Native Method)
04-12 21:07:03.580: E/AndroidRuntime(327): Caused by: java.lang.ClassNotFoundException: obd.gss.namespace.activity.Gssobdreadermainactivity in loader dalvik.system.PathClassLoader[/data/app/obd.gss.namespace-1.apk]
04-12 21:07:03.580: E/AndroidRuntime(327):  at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:240)
04-12 21:07:03.580: E/AndroidRuntime(327):  at java.lang.ClassLoader.loadClass(ClassLoader.java:551)
04-12 21:07:03.580: E/AndroidRuntime(327):  at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
04-12 21:07:03.580: E/AndroidRuntime(327):  at android.app.Instrumentation.newActivity(Instrumentation.java:1021)
04-12 21:07:03.580: E/AndroidRuntime(327):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1561)
04-12 21:07:03.580: E/AndroidRuntime(327):  ... 11 more

以下是我的清单的内容:

<uses-sdk android:minSdkVersion="10" />

<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<uses-permission android:name="android.permission.BLUETOOTH"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS"></uses-permission>
<uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION"></uses-permission>
<uses-permission android:name="android.permission.CONTROL_LOCATION_UPDATES"></uses-permission>
<uses-permission android:name="android.permission.WAKE_LOCK"></uses-permission>
<application
  android:icon="@drawable/icon"
  android:label="@string/app_name">

    <activity android:name=".Activity.Gssobdreadermainactivity"
              android:label="@string/app_name"
              android:screenOrientation="portrait"
              android:launchMode="singleInstance">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity android:name=".Activity.Gssobdreaderconfigactivity"
              android:label="@string/app_name">
    </activity>
    <activity android:name=".activity.Gssobdreadercommandactivity"
              android:label="@string/app_name"
              android:screenOrientation="portrait">
    </activity>
    <service android:name="io.GssobdReaderService"/>
</application>
4

3 回答 3

1

你的问题的原因是:

java.lang.ClassNotFoundException: obd.gss.namespace.activity.Gssobdreadermainactivity

您是否忘记将您的活动添加到清单中?

您的清单应类似于:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="obd.gss.namespace"
    android:versionCode="1"
    android:versionName="1.0" >
 <!-- permissions and other stuff here -->
<application
  android:icon="@drawable/icon"
  android:label="@string/app_name">

    <activity android:name=".activity.Gssobdreadermainactivity"
              android:label="@string/app_name"
              android:screenOrientation="portrait"
              android:launchMode="singleInstance">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
<!--more activities and services here -->
</application>
</manifest>

请注意,清单标签的 package 属性和活动标签的 name 属性的组合应该与您的类的完全限定名称完全相同。使用我上面的例子,你会得到:

obd.gss.namespace.activity.Gssobdreadermainactivity
于 2012-04-12T21:38:51.717 回答
0

我也遇到过类似的问题,尤其是新导入的项目。我找到的最接近解决方案的方法是确保 .classpath 文件是可写的,重新启动 Eclipse(或您使用的任何 IDE),刷新项目,清理并构建项目并重试。这并不总是能解决它,但做几次通常会让我的错误消失。错误的本质是Android操作系统找不到Activity,尽管它知道Activity应该存在并试图启动它。

于 2012-04-12T21:59:59.667 回答
0

你的源代码树是什么样的?您可能需要删除 .activity。和.Activity。应用程序中的前缀完全限定类名。当然,除非您的源代码树中有一个“活动”和一个“活动”文件夹(=

于 2012-04-13T15:24:50.310 回答