Android项目无法正确构建

时间:2013-06-08 23:36:23

标签: android eclipse build

我有一个项目工作正常,现在每当我尝试构建/运行时,我得到以下异常:

06-08 18:11:04.083: E/AndroidRuntime(27388): FATAL EXCEPTION: main
06-08 18:11:04.083: E/AndroidRuntime(27388): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.kicker.android.kickstart/com.kicker.android.kickstart.HomeActivity}: java.lang.ClassNotFoundException: Didn't find class "com.kicker.android.kickstart.HomeActivity" on path: /data/app/com.kicker.android.kickstart-1.apk
06-08 18:11:04.083: E/AndroidRuntime(27388):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2106)
06-08 18:11:04.083: E/AndroidRuntime(27388):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
06-08 18:11:04.083: E/AndroidRuntime(27388):    at android.app.ActivityThread.access$600(ActivityThread.java:141)
06-08 18:11:04.083: E/AndroidRuntime(27388):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
06-08 18:11:04.083: E/AndroidRuntime(27388):    at android.os.Handler.dispatchMessage(Handler.java:99)
06-08 18:11:04.083: E/AndroidRuntime(27388):    at android.os.Looper.loop(Looper.java:137)
06-08 18:11:04.083: E/AndroidRuntime(27388):    at android.app.ActivityThread.main(ActivityThread.java:5041)
06-08 18:11:04.083: E/AndroidRuntime(27388):    at java.lang.reflect.Method.invokeNative(Native Method)
06-08 18:11:04.083: E/AndroidRuntime(27388):    at java.lang.reflect.Method.invoke(Method.java:511)
06-08 18:11:04.083: E/AndroidRuntime(27388):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
06-08 18:11:04.083: E/AndroidRuntime(27388):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
06-08 18:11:04.083: E/AndroidRuntime(27388):    at dalvik.system.NativeStart.main(Native Method)
06-08 18:11:04.083: E/AndroidRuntime(27388): Caused by: java.lang.ClassNotFoundException: Didn't find class "com.kicker.android.kickstart.HomeActivity" on path: /data/app/com.kicker.android.kickstart-1.apk
06-08 18:11:04.083: E/AndroidRuntime(27388):    at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:65)
06-08 18:11:04.083: E/AndroidRuntime(27388):    at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
06-08 18:11:04.083: E/AndroidRuntime(27388):    at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
06-08 18:11:04.083: E/AndroidRuntime(27388):    at android.app.Instrumentation.newActivity(Instrumentation.java:1054)
06-08 18:11:04.083: E/AndroidRuntime(27388):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2097)
06-08 18:11:04.083: E/AndroidRuntime(27388):    ... 11 more

我的清单文件的相关部分是:

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

<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/KickStartTheme"
    android:uiOptions="splitActionBarWhenNarrow" 
    android:hardwareAccelerated="false" >
    <activity
        android:name="com.kicker.android.kickstart.HomeActivity"
        android:label="@string/app_name"
        android:screenOrientation="portrait" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

我知道这个问题通常是清单中的一个类型,其中主要活动名称不正确。我已经仔细检查了那部分。

这是非常奇怪的部分,我一直在两台不同的计算机上开发这个应用程序。如果我在计算机“A”上构建,并启动应用程序,它工作正常。如果我从计算机“A”导出项目并将其导入计算机“B”上的干净工作区而不进行任何其他更改,我将在启动应用程序时收到上述错误。

在计算机“B”上导致这种情况的原因是什么?

2 个答案:

答案 0 :(得分:0)

将您的活动命名为“.MainActivity”,如下所示,您应该对自己感兴趣。

    <activity
        android:name=".HomeActivity"
        android:label="@string/app_name"
        android:screenOrientation="portrait" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

答案 1 :(得分:0)

如果你在ADT v 22上运行你必须安装android sdk build-tools和Android SDK Platform-tools

打开SDK管理器 - 工具 - 安装“android sdk build-tools”和“Android SDK Platform-tools”

在安装android sdk build-tools和Android SDK Platform-tools之后,将ADT从v.21升级到v.22后出现同样的错误,一切正常。

(在AVD Manager上查看)