【问题标题】:Referencing external classes引用外部类
【发布时间】:2010-03-29 12:22:46
【问题描述】:

我的 Android 项目引用了 Android SDK 中未包含的外部类文件。我在 Eclipse 中正确地将这些类添加为外部库。代码编译没有问题。但是当我尝试运行应用程序时,我得到了 DalvikVM 的 ClassNotFoundException,尽管所有必需的类都已被移植。

我错过了什么吗?

我做的步骤。

  1. 在 eclipse android 项目中创建新文件夹。
  2. 复制此文件夹中的必要类。
  3. 通过 eclipse 将文件夹添加到类路径中。
  4. 程序
  5. 编译
  6. 作为安卓应用运行
  7. --> 异常

编辑:

我现在尝试添加外部 jar。 eclipse 重建构建路径时出现以下错误:

“警告:忽略不带有关联 EnclosureMethod 属性的匿名内部类的 InnerClasses 属性。(此类可能是由损坏的编译器生成的。)”

这显然适用于 jar 中的每个类文件。

and: "Dex Loader]无法执行 dex: null" 和:“转换为Dalvik格式失败:无法执行dex:null”

【问题讨论】:

  • 我认为错误在控制台中?您能否从控制台提供有关该错误的更多信息?
  • 这只是 Dalvik VM 抛出的 ClassNotFoundException。就是这样。
  • 对于被“dx”踢出的错误,手动运行命令并附加一个“--debug”标志。这将为致命错误提供更详细的解释。
  • 堆栈跟踪是什么样的?

标签: android


【解决方案1】:

Android 开发工具 (ADT) - 我假设您正在使用它来构建您的项目 - 只会获取位于您的 Android 项目的“libs”文件夹中的外部 jar。否则,它们将不会被提取并转换为 Dalvik 字节码并添加到您的 classes.dex 文件中:

http://mylifewithandroid.blogspot.com/2010/01/jars-on-classpath.html

不幸的是,它不会添加您刚刚添加到 Java 项目构建路径中的类。

【讨论】:

    【解决方案2】:

    右键单击并转到项目的属性。

    选择 Java Build Path-->libraries-->添加外部类文件夹(其中包含您的类文件。)--> 好的。那它。希望有帮助。

    【讨论】:

    • 检查你是否在你的java代码中导入包。之后你会得到错误然后在你的问题中发布你的Logcat错误...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多