17

我最近将我的 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.dd)

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

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

这让我很怀疑,因为当我之前弄乱了支持库时,我收到了许多与 dex 相关的错误。

不用说,AndroidManifest 包含活动的正确路径。

任何帮助将不胜感激。非常感谢。

4

5 回答 5

83

可能是这个的副本

尝试转到Project -> Properties -> Java Build Path -> Order & Export并确保 为您的项目和您正在使用的所有其他库项目检查Android Private Libraries 。之后清理所有项目,看看会发生什么。

于 2013-05-17T13:31:39.673 回答
6

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

但是,我不得不在我的 Eclipse(版本:3.7.2)中使用稍微调整的方法。

  1. 项目 - 属性 - Java 构建路径-订购和导出
  2. 检查Android Private Libraries(也用于使用的库项目)
  3. 项目 - 清理... -清理所有项目
于 2013-05-25T09:12:08.247 回答
1

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

  1. 右键单击您的 src 文件夹。
  2. 构建路径 -> 用作源文件夹
于 2013-12-18T14:23:40.507 回答
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中。

于 2014-12-22T08:05:32.883 回答
0

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

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

问候,马丁

于 2014-03-09T18:49:50.547 回答