Eclipse:Android 项目中 JDK 类的 java.lang.NoClassDefFoundError

2023-12-28

首先,我想提一下我读过manystackoverflow 帖子关于没有发现类定义错误,我也在many其他博客和网站,但人们提供的解决方案并没有解决这个问题。

我在跑步Eclipse 64 位使用 ADT 插件版本 v21.0.1-543035Ubuntu 12.10 64 位。一切都是64位的,Ubuntu,Eclipse以及我使用的JRE和JDK(jdk1.6.0_38)。

我编写了一个非常小的 Android 应用程序,需要 JDK 中的类才能运行。

我稍微隔离了这个问题,并通过创建一个新的“Android应用程序项目”来重新创建它我的代码只有一行(在主类的onCreate方法中)。这行:

BufferedImage buff = new BufferedImage(100,100,BufferedImage.TYPE_INT_RGB);

Eclipse 自动添加必要的导入:

导入java.awt.image.BufferedImage;

但要求我为此类添加 jars/JRE。

我将 jdk1.6.0_38 添加到 Eclipse 的“Installed JREs”(就像 Eclipse 帮助页面上的指示一样 http://help.eclipse.org/indigo/topic/org.eclipse.jdt.doc.user/tasks/task-add_new_jre.htm).

在项目的“Java构建路径”中,我通过“添加库”->“JRE系统库”->“工作区默认JRE”添加它。它自动将 JDK 添加到项目的构建路径中。

在编译期间,我没有收到任何错误。仅当在 android 模拟器(任何 AVD)中运行应用程序时,我会收到以下错误:

E/dalvikvm(828): Could not find class 'java.awt.image.BufferedImage', referenced from method com.example.usejdk.MainActivity.onCreate
W/dalvikvm(828): VFY: unable to resolve new-instance 467 (Ljava/awt/image/BufferedImage;) in Lcom/example/usejdk/MainActivity;
D/dalvikvm(828): VFY: replacing opcode 0x22 at 0x0009
D/dalvikvm(828): DexOpt: unable to opt direct call 0x0cdc at 0x0c in Lcom/example/usejdk/MainActivity;.onCreate
D/AndroidRuntime(828): Shutting down VM
W/dalvikvm(828): threadid=1: thread exiting with uncaught exception (group=0x40a70930)
E/AndroidRuntime(828): FATAL EXCEPTION: main
E/AndroidRuntime(828):   java.lang.NoClassDefFoundError: java.awt.image.BufferedImage
E/AndroidRuntime(828):   at com.example.usejdk.MainActivity.onCreate(MainActivity.java:16)
E/AndroidRuntime(828):   at android.app.Activity.performCreate(Activity.java:5104)
E/AndroidRuntime(828):   at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1080)
E/AndroidRuntime(828):   at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2144)
E/AndroidRuntime(828):   at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
E/AndroidRuntime(828):   at android.app.ActivityThread.access$600(ActivityThread.java:141)
E/AndroidRuntime(828):   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
E/AndroidRuntime(828):   at android.os.Handler.dispatchMessage(Handler.java:99)
E/AndroidRuntime(828):   at android.os.Looper.loop(Looper.java:137)
E/AndroidRuntime(828):   at android.app.ActivityThread.main(ActivityThread.java:5039)
E/AndroidRuntime(828):   at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime(828):   at java.lang.reflect.Method.invoke(Method.java:511)
E/AndroidRuntime(828):   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
E/AndroidRuntime(828):   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
E/AndroidRuntime(828):   at dalvik.system.NativeStart.main(Native Method)

这是我尝试过的事情没用:

  1. 添加到“eclipse.ini" jdk 的位置 ("-vm /usr/lib/jvm/jdk1.6.0_38/bin”在 2 个单独的行中)。
  2. 我添加了路径“-Djava.library.path=/usr/lib/jvm/jdk1.6.0_38/jre/lib”的“默认VM参数”。
  3. 使用 32 位 JRE 和 JDK 以及 JRE/JDK 7 - 不起作用(当然)。
  4. 我尝试添加jdk jar文件manually到“libs”文件夹并标记“添加到构建路径” - 不起作用。
  5. 我卸载并使用 ADT 和 Android SDK 再次安装 Eclipse...

没有什么可以解决这个恼人的错误......

请同时注意这些:

  1. 我确定我的.classpath文件包含默认的 JRE 条目(就像他们在这里说的 http://maven.apache.org/plugins/maven-eclipse-plugin/trouble-shooting/jdk-being-used-is-different-than-expected.html)
  2. 我尝试添加otherjar 文件到“libs”文件夹+“添加到路径”,并使用它们 - 它工作得很好。
  3. 我尝试使用“import java.awt.image.BufferedImage;”运行相同的代码(一行)在一个regularjava项目(不是安卓项目)并使项目“使用默认 JRE” - 并且它工作得很好!为什么它适用于常规 Java 项目而不适用于 Android 项目?

我想这意味着我的 Eclipse 安装does有能力使用jdk类,但是不在 Android 应用程序中.

那么我需要做什么才能让这一行代码运行在 Android 应用程序中?

任何帮助将非常非常感激。提前致谢。


那么我需要做什么才能让这一行代码在 Android 应用程序中运行呢?

简短的回答是:没什么,因为你can't对此采取任何行动。整体java.awt.*框架不是 Android SDK 的一部分,包括BufferedImage,因此不受模拟器或物理设备支持。 Android 有自己的加载和渲染图形的实现。

在不知道自己需要什么的情况下BufferedImage因为,很难说你应该考虑什么替代方案。您很可能正在尝试进行某种图像处理,其中涉及访问图像的各个像素?如果是这样的话,请看一下Bitmap http://developer.android.com/reference/android/graphics/Bitmap.html and BitmapFactory http://developer.android.com/reference/android/graphics/BitmapFactory.html类。

这一切都归结为Java SDK != Android SDK。无论如何,也可以考虑在这里进行搜索;你不是第一个犯这个错误的人。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Eclipse:Android 项目中 JDK 类的 java.lang.NoClassDefFoundError 的相关文章

  • Phonegap(3.0.0) 相机第一次尝试不成功

    出于测试目的 我复制了在音隙相机 API http docs phonegap com en 3 0 0 cordova camera camera md html Camera我发出警报onPhotoDataSuccess测试函数何时被触
  • android 弹出菜单文本颜色(AppCompat)

    我需要更改 popuo 菜单的文本颜色 但我找不到任何方法来执行此操作 我可以更改 popomenu 的背景但不能更改文本 我以这种方式编辑 style xml
  • JDK 8 - “无法解析类型 java.util.Map$Entry”[重复]

    这个问题在这里已经有答案了 我尝试使用 HashMap 但收到错误 无法解析类型 java util Map Entry 它是从所需的 class 文件间接引用的 我正在使用 JDK 8 和 Eclipse 有人知道为什么吗 My code
  • 在系统进程中调用方法没有合格的用户错误

    我在 android 4 4 中使用通知侦听器服务 遇到一个错误 导致我的应用程序停止获取发布的通知 这是相当随机的 但当它发生时我看到 12 31 01 40 44 080 21680 21680 W ContextImpl Callin
  • 无法从 https 下载 .apk

    我为我的客户开发了一个 Android 应用程序 我不想在 Play 商店上发布它 我已将其托管在我的客户端网站上 asp net 我已使用 MIME 类型 apk application vnd android package archi
  • 我想了解 NfcV ISO-15639 的操作

    我是 NFC 技术新手 我很难理解如何操作块 byte cmd new byte byte 0x20 FLAG byte 0x21 WRITE SINGLE BLOCK COMMAND byte 0x00 byte 0x00 byte 0x
  • 使用应用程序上下文滑动图像加载

    我在我的 Android 应用程序中使用 glide 进行图像加载 为了避免任何崩溃 我正在使用应用程序上下文加载图像 这对应用程序和内存的性能有何影响 这对应用程序和内存的性能有何影响 Glide提供了这么多 with 方法是有原因的 它
  • 仅在 1.8 或更高版本的源级别允许使用 Lambda

    我的 Eclipse 版本为 1 8 mars 2 版本 并且我将compliance java 级别设置为 1 8 如下所示 但我仍然收到错误 Lambda 仅允许在源级别 1 8 或更高版本 You also nend to set y
  • Android:由于 Web 服务 Http 请求,活动显示时间过长

    我的一项活动是在启动应用程序时向 Web 服务发出 http 请求以获取一些天气数据 由于 Web 服务请求 活动需要 3 4 秒才能显示的问题 在实际设备上测试 我知道我没有以正确的方式这样做 我所做的就是在 onCreate 方法上 我
  • getRunningAppProcesses 在 Android L (5.1.1) 上返回空列表 [重复]

    这个问题在这里已经有答案了 我刚刚测试了我的应用程序和 CM ATM Android Assistant 等 它们都无法获取正在运行的进程列表 但它们在预操作系统版本上运行良好 那么 Android L 5 1 1 发生了什么 请帮忙 am
  • 如何检查 API 级别 23 下的权限? [复制]

    这个问题在这里已经有答案了 我的一个应用程序有权限RECORD AUDIO和我的应用程序targetSdkVersion是 22 我无法在运行时检查权限 但我注意到如果我在 Android 6 0 及更高版本中安装我的应用程序 用户可以在系
  • 反序列化时出现 Gson 异常(无参数构造函数不存在)

    我遇到了一个问题 该问题仅在 5000 台设备中的 10 台中出现 无法用我的模拟器和测试设备重现它 这似乎是一个非常具体的问题 仅涉及少数设备 我所拥有的只是堆栈跟踪和我的代码 因此 我正在针对黑洞进行开发 只有在 GooglePlay
  • 如何使用远程 URL 在 Android 模拟器中播放 mp4 视频?

    如何使用远程 URL 在 Android 模拟器中播放 mp4 视频 我使用了以下代码 但此代码给我错误 抱歉 该视频无法播放 07 05 16 58 19 525 INFO AwesomePlayer 34 mConnectingData
  • android,如何重命名文件?

    在我的应用程序中 我需要录制视频 在开始录制之前 我为其指定名称和目录 录制完成后 用户可以重命名其文件 我写了以下代码 但似乎不起作用 当用户输入文件名并单击按钮时 我将执行以下操作 private void setFileName St
  • 如何以编程方式检测 Android 设备是否与 USB OTG 连接

    我正在使用定制 OTG 指纹扫描仪 我想检查 OTG 是否已连接到我的 Android 设备或未在特定的 Android 活动中 public class BootUpReceiver extends BroadcastReceiver p
  • Android 导航组件,如何知道结果是否设置为 onViewCreated

    在一个片段中我setFragmentResultListener并等待结果 setFragmentResultListener EnableFingerPrintFragment ARG REQUEST KEY bundle gt bund
  • 返回 RxJava 的 Completable 的方法的命名约定

    我有一个带有视图类的 Android 应用程序 Fragment Activity 观察其ViewModel The ViewModel公开方法 例如getUserName返回Observable
  • 启动 Activity 时自动弹出键盘

    我有一个相对简单的问题 我有一个包含很多 EditText 的活动 当我打开活动时 它会自动聚焦到第一个 EditText 并显示虚拟键盘 我怎样才能防止这种情况发生 在 XML 文件的布局标签中使用此属性 android focusabl
  • Android中计算两个时间之间的差异

    我有两个字符串变量 例如 StartTime 和 EndTime 我需要通过用 StartTime 减去 EndTime 来计算 TotalTime StartTime和EndTime的格式如下 StartTime 08 00 AM End
  • Android Studio 3.0 中的 Gradle 构建错误

    您能帮我解决 Android 3 0 中的 Gradle 构建问题吗 我是 Android Studio 的新手 以下是我在 AS 3 0 中的配置 gradle gt wrapper gt gradle wrapper propertie

随机推荐

  • Erlang:这个 trie 实现最错误的地方是什么?

    假期里 我的家人喜欢玩Boggle 问题是 我的Boggle 技术很糟糕 所以我做了任何优秀程序员都会做的事情 编写一个程序来给我玩 该算法的核心是一个简单的前缀特里树 http en wikipedia org wiki Trie 其中每
  • 离子恢复暂停事件防止文件浏览时触发,仅在按下主页按钮时触发

    我正在开发一个聊天应用程序 我在暂停和恢复事件时使用 document addEventListener 暂停 onpause false document addEventListener resume onresume false 当我
  • 加特林(性能测试):如何每x分钟在后台执行一次任务

    我想知道如何使用加特林每 x 分钟在后台执行一项任务 背景 我想在我们的后端写几个场景 在这种情况下 我们的后端将被另一个后端调用 一个常见的场景 客户端 后端 到服务器身份验证 可选 客户请求 X 客户请求 Y 客户请求Z 我想要一个执行
  • 播放规格时配置中断,因为“没有启动的应用程序”

    我将一些字符串外部化到 HOCON application conf 我正在访问这样的配置值 import play api Play current import play api Play configuration configura
  • AngularJS - 将变量传递到“$routeProvider”

    试图找出一种 特定于角度 的方法来尝试实现这一目标 我有一个包含一些视图的页面 当用户单击锚点时 视图会发生变化 我工作得很好 我很好奇的是 当用户点击时 是否可以存储一个变量 比如内部 html 然后将其传递给 routeProvider
  • 为什么有时scrollTop/scrollLeft不可写?

    我正在使用 dhtmlx 甘特图 UI 组件 其中包含任务列表和图形图表 任务列表和图形图表包含在两个独立的 div 元素中 它们同步并行滚动 通过滚动图表区域 任务列表会自动滚动 从而使任务行位置与甘特线位置相匹配 检查组件源代码 我发现
  • Pytorch 卷积自动编码器

    如何构建卷积自动编码器的解码器部分 假设我有这个 input gt conv2d gt maxpool2d gt maxunpool2d gt convTranspose2d gt output CIFAR images shape 3 x
  • 在 Windows 中安装适用于 python 3 的 Swampy

    我是一个Python初学者 使用 Think Python 一书 我必须在其中安装模块名称Swampy 提供的说明和下载链接有一个tar gz http pypi python org pypi swampy 2 1 1文件 我用googl
  • 带时间盐的客户端 MD5 哈希

    我想在客户端的 JS 中使用高阶时间值 这将使所传递的哈希值的有效性短暂失效 如果他们检查 JS 并发现它使用了这个时间盐 那么如果他们知道盐是什么 那么破解 MD5 的工作会容易得多吗 Stephen The 盐不需要保密 https s
  • 在 python3 中迭代有限的 dict_values

    使用 py3 我试图简单地迭代dict values这是 python3 中的视图 而不是list 所以我不能这样做dict values limit 不再了 无法在 py3 中执行以下操作 In 1 large dict values l
  • Android 模拟器 4.2.2 未在锁定屏幕中显示添加小部件选项 [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 在较新的 Android 版本中 您
  • 使用应用内购买进行购买时是否可以添加额外数据

    这是一个场景 我们的应用程序上有多个老师 用户可以从老师那里购买 3 种不同的物品 价格为 20 美元 30 美元 40 美元 所以我在 google play console 中创建了 3 个产品 用户购买时 某些物品我如何知道他从哪位老
  • 如何从 Ada 源构建可从 C++ 代码调用的静态库?

    我需要使用一堆用 Ada 编写的代码构建一个静态库 可以从用 C C 编写的代码中调用这些代码 我通过互联网搜索并了解了一些知识gnatmake gnatbind and gnatlink 但仍然无法正确完成工作 另外 我读到有些工具依赖于
  • Redis 命令获取所有可用密钥?

    是否有一个 Redis 命令可以获取数据库中的所有键 我见过一些 python redis 库获取它们 但想知道是否可以通过 redis client 实现 尝试看看KEYS http redis io commands keys命令 KE
  • 引导面板无法正常工作

  • 在ggplot2中,如何更改选定面的边框?

    从 ggplot2 帮助页面获取图表 ggplot mtcars aes factor cyl geom bar facet grid vs 是否可以仅更改选定面板的边框 颜色和 或厚度 例如 我想更改分面变量 1 的分面的边框vs 我尝试
  • 在可移植库中使用 CallerMemberName 属性

    我有一个针对 Windows Phone 7 1 和 Windows 应用商店应用程序 用于 WinRT 的便携式库 它使用 net 4 5 框架 我想使用新的 CallerMemberName 属性在其中 然而 VS2012告诉我 这个属
  • c中printf中的多个赋值语句[重复]

    这个问题在这里已经有答案了 谁能帮我理解下面代码的输出 int main int a 35 printf d d d d d a a a 20 a a 39 return 0 output 20 19 19 39 19 了解如何在 c 中的
  • 谷歌的函数绘图仪

    如果您在 google com 上搜索数学方程 大多数情况下谷歌会自动为您绘制它 例如 您可以输入sin x x甚至是逗号分隔的列表 例如sin x x cos x x在同一个图表上绘制多个函数 我知道还有其他 Javascript 绘图库
  • Eclipse:Android 项目中 JDK 类的 java.lang.NoClassDefFoundError

    首先 我想提一下我读过manystackoverflow 帖子关于没有发现类定义错误 我也在many其他博客和网站 但人们提供的解决方案并没有解决这个问题 我在跑步Eclipse 64 位使用 ADT 插件版本 v21 0 1 543035