【问题标题】:Android - Unable to instantiate activity - Class not found exception after upgrading to ADT 22Android - 无法实例化活动 - 升级到 ADT 22 后找不到类异常
【发布时间】:2013-05-17 13:28:02
【问题描述】:

我最近将我的 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 包含活动的正确路径。

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

【问题讨论】:

    标签: android adt classnotfound


    【解决方案1】:

    可能与this 重复。

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

    【讨论】:

    • 是的,这也为我解决了这个问题。看起来您的 libs/ 文件夹的内容现在已在 Android Private Libraries 下准编译...除非您更新到新的 ADT,否则您需要在项目属性中检查它,否则它不会包含在编译中。 Android Studio 我们来了
    • 感谢它的工作。只是一个问题,当我们检查任何特定的库时会发生什么?连SDK都被用来编译但没有被检查。
    • (请帮我解决 java.lang.NoClassDefFoundError: my.package.AMainActivity$UpdateTask )我的广告是 21,默认检查 Android 私有库,但仍然有很多例外。为什么?
    • 有谁知道如何在 IntelliJ / Android Studio Gradle 设置中解决这个问题?
    • @WillCalderwood 你找到 Android Studio 的解决方案了吗?
    【解决方案2】:

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

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

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

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

      • 哇,我花了这么长时间试图弄清楚这一点。我一直在寻找上面给出的答案,但你的解决方案是我真正需要的。我想在长时间休息后更新我的应用程序,所以也许这就是设置略有变化的原因(多么烦人!)。谢谢。 :D
      【解决方案4】:

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

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

      您好, 马丁

      【讨论】:

        【解决方案5】:

        如果您尝试了所有答案仍然有问题,那么活动名称可能与 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 包中。

        【讨论】:

          猜你喜欢
          • 2013-05-11
          • 1970-01-01
          • 2013-06-20
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-09-22
          • 1970-01-01
          相关资源
          最近更新 更多