Android应用程序在加载时崩溃 - classNotFoundException

时间:2012-02-29 13:00:46

标签: android android-intent

这让我疯了几天:)

IDEA是我的首选武器。在一个编辑过程中,无关紧要的改变(或者我认为)调整布局,轻推按钮几个像素留下排队等我编译并运行项目。我的应用程序启动时出现了ClassNotFoundException。它由java.lang.Bootloader抛出。我在调用Bootloader时设置了一个断点,可以看到违规类是我的主要应用程序类。这是它的外观:

public class Rands extends Application{

    public static SharedPreferences preferences;

    private static ArrayList<Favourite> favourites;

    private static Rands instance;

    public Rands(){
        instance = this;
    }

并在清单中:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="rands.mycompany.com"
      android:installLocation="preferExternal"
      android:versionCode="8"
      android:versionName="0.8">
    <uses-sdk android:minSdkVersion="8" />

    <uses-permission android:name="android.permission.VIBRATE" />

    <application android:name="rands.mycompany.com.Rands"
                 android:icon="@drawable/icon"
             android:label="@string/app_name">

    <activity android:name="rands.mycompany.com.RandsMainActivity"
              android:theme="@android:style/Theme.Translucent.NoTitleBar"
              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="rands.mycompany.com.MainMenuActivity"
              android:theme="@android:style/Theme.Translucent.NoTitleBar"
              android:label="MainMenuActivity"/>

这是事情变得时髦的地方。在logcat中没有任何相关性。我看到应用程序复制,安装和启动然后我得到例外。在我的应用程序类的构造函数被调用之前发生异常。如果我在Eclipse中加载项目,它可以正常工作。我加载回IDEA,我得到了例外。我有两部手机,一部带有2.3的Desire和一部带2.2的Tmobile Pulse(华为)。它发生在手机和模拟器中。如果我在IDE外部(即从启动器)运行应用程序,它运行正常。

我做出这些假设:

  1. 由于logcat中没有任何东西,它闻起来像一个平台错误
  2. 由于项目在Eclipse中工作正常,我假设我的清单和应用程序类都没问题。
  3. 我也试过

    <application android:name=".Rands"
    

    任何线索?

    干杯

3 个答案:

答案 0 :(得分:1)

我在Eclipse中完成了我的项目,然后又回到了这个奇怪的问题。

我不知道为什么,但是立即从现有资源中创建一个新项目。

我将项目文件夹移出我的工作区,除了我的src和res文件夹(没有资产)之外删除了所有内容,然后清单从现有源创建了一个新项目。

去图......

答案 1 :(得分:0)

您已在清单标记中指定了包名称,因此请勿在活动代码中重新声明它,以下代码适用于清单。

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="rands.mycompany.com"
      android:installLocation="preferExternal"
      android:versionCode="8"
      android:versionName="0.8">
    <uses-sdk android:minSdkVersion="8" />

    <uses-permission android:name="android.permission.VIBRATE" />

    <application android:name="rands.mycompany.com.Rands"
                 android:icon="@drawable/icon"
             android:label="@string/app_name">

    <activity android:name=".Rands"
              android:theme="@android:style/Theme.Translucent.NoTitleBar"
              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=".MainMenuActivity"
              android:theme="@android:style/Theme.Translucent.NoTitleBar"
              android:label="MainMenuActivity"/>

答案 2 :(得分:0)

您的应用程序和活动对象都被命名为“rands.mycompany.com.Rands”,这可能就是问题吗?