Android - 无法实例化活动 - 升级到ADT 22后未找到类异常

时间:2013-05-17 13:28:02

标签: android adt classnotfound

我最近将ADT升级到版本22。 在我这样做之后,我首先收到了我的支持库的错误(这是依赖于另一个库项目)。 在将支持库复制到我的项目并清理了所有项目后,当我尝试启动应用程序时,我一直收到以下错误:

java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.d.d/com.d.d.MainActivity}: java.lang.ClassNotFoundException: com.d.d.MainActivity

(我已将真实的包名重命名为com.d.d)

但让我怀疑它是支持库更改的原因的是以下几行:

at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61)

这让我很怀疑,因为当我之前搞过支持库时,我收到了很多与dex有关的错误。

毋庸置疑,AndroidManifest包含活动的正确路径。

这里将非常感谢任何帮助。 非常感谢。

5 个答案:

答案 0 :(得分:83)

可能是this的副本。

  

尝试转到项目 - >属性 - > Java构建路径 - >订单&导出并确保    Android私有库会检查您的项目以及您正在使用的所有其他库项目。清理所有项目   然后看看会发生什么。

答案 1 :(得分:6)

@Krauxe非常感谢你提供这个答案!

但是,我必须在Eclipse中使用稍微调整的方法( Version:3.7.2 )。

  1. 项目 - 属性 - Java构建路径 - 订单&导出
  2. 检查 Android私有库(也适用于已使用的库项目)
  3. 项目 - 清洁...... - 清理所有项目

答案 2 :(得分:1)

在这里,我们必须将src文件夹添加为源文件夹。由于某种原因,绑定消失了。

  1. 右键单击您的src文件夹。
  2. 构建路径 - >用作源文件夹

答案 3 :(得分:0)

我遇到了同样的问题。解决方案是将输出文件夹更改为bin / classes。

  1. 右键单击项目
  2. 选择属性
  3. 转到Java构建路径>源
  4. 将默认输出文件夹设置为/ bin / classes
  5. 问候, 马丁

答案 4 :(得分:0)

如果您已尝试所有答案仍然遇到问题,那么活动名称可能与AndroidManifest.xml中的软件包名称不匹配。 例如你的xml就像这样。

<activity
    android:name="com.tony.HomeActivity"
    android:screenOrientation="portrait" >
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>

但HomeActivity实际上在com.tony.ui.HomeActivity包中。