重新打包 .jar 文件

2024-01-16

我需要将 JRE7 库中的一些 jar 添加到我的 Android 项目中。但例如rt.jar与以下内容相冲突android.jar来自 Adroid 2.2 SDK,所以我收到此错误:

不明智或错误地使用核心类(java.* 或 javax.*) 当不构建核心库时。

这通常是由于无意中包含了核心库文件造成的 在您的应用程序项目中,当使用 IDE(例如 蚀)。如果您确定您不是有意定义 核心类,那么这是最有可能的解释 正在进行中。

然而,您实际上可能试图在核心中定义一个类 名称空间,您可能已获取其来源,例如, 来自非 Android 虚拟机项目。这将最 肯定不行。至少,它会危及 您的应用程序与平台未来版本的兼容性。 它的合法性也常常受到质疑。

如果你真的打算构建一个核心库——这只是 适合作为创建完整虚拟机的一部分 分发,而不是编译应用程序——然后使用 “--core-library”选项可以抑制此错误消息。

如果您继续使用“--core-library”,但实际上 构建一个应用程序,然后预先警告您的应用程序 在某些时候仍然无法构建或运行。请 为愤怒的客户做好准备,例如,他们发现您的 一旦升级操作,应用程序将停止运行 系统。你将要为这个问题负责。

如果您合法地使用恰好位于 core 包,那么你拥有的最简单安全的替代方案是 重新打包该代码。也就是说,将有问题的类移动到 你自己的包命名空间。这意味着他们永远不会在 与核心系统类冲突。 JarJar 是一个可能有帮助的工具 你在这一努力中。如果您发现自己无法做到这一点,那么 这表明你所走的道路最终将 导致痛苦、痛苦、悲伤和哀叹。

我知道有很多关于它的话题,比如JarJar http://code.google.com/p/jarjar/, OneJar http://one-jar.sourceforge.net/ or FatJar http://fjep.sourceforge.net/可能对我有好处。但我不知道如何使它们中的任何一个工作并且文档并没有真正说明(对我来说)。我猜他们使用 Ant 命令,但我一直使用 Eclipse 内置构建器,现在我不知道如何使用 Ant 或上面提到的任何命令。

所以我的问题是:如何重新打包这个 rt.jar 以便我可以在我的 Android 项目中编译它?

谢谢你!

EDIT:

好的,所以我想要实现的是创建一个.jar,它可以在开发Android应用程序时使用(简化一些功能,并不重要)。但我还希望能够将相同的 .jar 添加到标准 Java 项目中,以便也使用其中的一些功能。它看起来像这样: 无论谁编写应用程序,都会将此 .jar 添加到他的 Java 项目中 -> 它使他能够生成某些文件(需要互联网才能完成) -> 然后将这些生成的文件添加到 Android 项目中 -> 稍后,当有人使用此 Android 时应用程序中,这些文件无需使用互联网(离线)即可提供某些功能。


即使有可能,在任何项目中这样做都是不明智的。您将使自己面临大量的类不兼容和加载问题。但无论如何,这都无关紧要,因为核心 Java 库在您的档案被触及之前就已加载,使得任何此类覆盖它们的尝试都毫无意义。

更不用说 Android 使用自己的 JVM 实现,该实现与 JDK 6 不完全兼容(忘记 JDK 7)。另请注意,将核心 Java 库与代码打包在一起可能会侵犯版权,并且可能会更改您的许可选项 (IANAL)。

您需要找到另一种方法来解决您遇到的任何问题(您在问题中没有提及)。

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

重新打包 .jar 文件 的相关文章

  • Java检测鼠标长按

    如果用户按下 JList 组件超过 3 秒 有什么方法可以捕获事件吗 我发现困难的部分是即使在用户松开鼠标左键之前也需要触发事件 这可以通过 mousePressed 和 mouseReleased 组合轻松完成 您可以在 mouseDow
  • android 销毁时是否有任何视图回调?

    我有一个自定义视图组件 我在片段或活动中使用了它 我想知道当它从片段 活动中销毁时是否有回调 View 没有回调 除了finalize 但我不认为这就是你所要求的 查看有onDetachedFromWindow 当它从屏幕上移除时 但这与它
  • 免费和付费版本 Android 应用程序的最佳方法?

    我开发了一个 Android 应用程序 我希望它可以作为免费版本和付费版本提供 最好的方法是什么 我可以想到三种解决方案 将项目分成两个分支并维护它们 创建一个库项目并有两个附加项目 一个 免费 版本和一个 付费 版本 使用应用内结算 问
  • 如何在具有多种字体大小的 TextView 中调整行高?

    我有一个包含 Spannable 字符串的 TextView 该字符串包含一堆文本 其中第一个单词的字体大小是字符串其余部分的两倍 问题在于 由于第一个字的大小增加 第一行和第二行之间的行间距比后续行之间的行间距大得多 http img s
  • 将 XML 从网站解析到 Android 设备

    我正在启动一个 Android 应用程序 它将解析来自网络的 XML 我创建了一些 Android 应用程序 但它们从未涉及解析 XML 我想知道是否有人对最佳方法有任何建议 这是一个例子 try URL url new URL your
  • iText7 将 SVG 添加到 PdfDocument 中以及可能出现的问题

    关于问题的答案 如何使用 iText7 将 SVG 添加到 PDF 这是一个链接点击这里 https stackoverflow com questions 50059456 how to add an svg to a pdf using
  • 如何发现另一个应用程序的意图

    我正在尝试构建一个应用程序来接收来自 StumbleUpon 应用程序的共享 此时 我可以接收浏览器的 共享网址 但是当从 StumbleUpon 共享时 我的应用程序不会显示在列表中 我想我可能没有在清单中注册正确的意图 有什么方法可以找
  • 如何使用特定选项卡启动活动?

    我已经浏览了许多示例 问题和教程 但我从未见过使用特定选项卡启动活动 启动新意图 我知道可以使用 setCurrentTab切换到选项卡 但这只能从父活动选项卡内部完成 从另一个活动启动一个活动中包含的特定选项卡怎么样 是否可以 如果是这样
  • Visual Studio Code - Java 类路径不完整。只会报告语法错误

    在使用 python 获得了丰富的经验之后 我正在使用 java 迈出第一步 我正在运行的脚本是一个简单的 Java Swing Gui 它可以从命令行和 VS Code 中正常编译和运行 为了设置 java 调试环境 我使用 github
  • 当通过 Map.put(K, V) 添加值时,是否必须通过 Map.get(K) 返回相同的实例?

    假设您有以下代码 Map
  • Java XML 解析器添加不必要的 xmlns 和 xml:space 属性

    我在 Windows 10 上使用 Java 11 AdoptOpenJDK 11 0 5 2019 10 15 我正在解析一些旧版 XHTML 1 1 文件 这些文件采用以下一般形式
  • logcat 信息出现在 Android Studio 的“运行”选项卡中

    我的 android studio 运行选项卡很简单 然后它变得更难并给我更多信息 例如 logcat 中的信息 如何禁用或删除第二张图片中出现的更多信息并返回到第一张图片中的第一个外观 我只需要正在运行的 flutter 应用程序的日志输
  • 在 Android KitKat 中接收彩信

    所以这个视频Android 4 4 短信 API http www youtube com watch v mdq0R2WQssQ DevBytes 解释了 KitKat 中 SMS API 的最新变化 他们还提供了示例项目的链接 http
  • 将字节数组保存为 Android 设备文件夹中的 jpg 文件

    我正在尝试将图像保存在 Android 设备的文件夹中 我使用的代码如下 var newFolder AndroidEnvironment GetExternalStoragePublicDirectory AndroidEnvironme
  • Android:禁用 1.5 纸杯蛋糕动画过渡

    长话短说 如何禁用活动之间的屏幕转换 如果您愿意的话 我们实现了自己的选项卡处理程序 现在它正在选项卡之间进行转换 这看起来很俗气 谢谢 Chris See android content Intent FLAG ACTIVITY NO A
  • 有没有办法处理Java堆空间异常[重复]

    这个问题在这里已经有答案了 我正在寻找将文件输入流转换为大文件 文件大小为 100MB 并且抛出 java lang OutOfMemoryError Java Heap space import java io FileInputStre
  • 文档过滤器在 Java 中不起作用?

    在超过 10 个字符的文本字段中 它必须显示错误 为此 我使用了文档过滤器 JTextField field JTextField txtFld AbstractDocument document AbstractDocument fiel
  • 混合语言源目录布局

    我们正在运行一个使用多种不同语言的大型项目 Java Python PHP SQL 和 Perl 到目前为止 人们一直在自己的私有存储库中工作 但现在我们希望将整个项目合并到一个存储库中 现在的问题是 目录结构应该是什么样的 我们应该为每种
  • 在 Android 中将列表传递给另一个 Activity

    我已经创建了一个列表 并希望将该列表传递给另一个活动 但当我创建意图时 我在 putExtra 语句上收到错误 只是想知道是否有任何简单的方法来传递字符串列表而不是单个字符串 Thanks private List
  • 将 JSON 发送到 Spring MVC 控制器

    我正在尝试将 JSON 发送到 Spring MVC 控制器 在 Spring MVC 方面 一切都配置正确 下面是代码 但似乎没有运行

随机推荐

  • 视图索引 (Oracle)

    假设我有两张桌子 tab a and tab b 我创建了一个如下所示的视图 create view join tabs as select col x as col z from tab a union select col y as c
  • Objective C 中什么是非空?

    有人可以详细说明为什么吗nonnulliOS 9 中引入 例如 NSArray method instancetype array is now instancetype nonnull array 参考 https developer a
  • C 的 std::vector 替代品 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我想知道是否有替代方案C 中的 std 向量 我发现这个实现 http codingrecipes com implementation
  • (Flutter) 具有有限内容的无限滚动 `ListView.builder`

    1 问题 我该如何做我的ListView builder能够滚动到顶部和底部的空白区域吗 例如 我有一个自定义小部件列表 我希望用户能够通过滚动到列表中最上面的卡片 位于屏幕顶部 更接近他的拇指 而Flutter用空背景渲染顶部空间 2 到
  • 使用 MVC Web API 发布对象数组

    我有一个基本的后期操作 适用于单个对象RecordIem 我想做的是执行相同的操作 但通过使用相同格式发布一组请求来批量执行 例如 public HttpResponseMessage Post RecordItem request var
  • Python Multiprocessing.Pool 惰性迭代

    我想知道 python 的 Multiprocessing Pool 类与 map imap 和 map async 一起使用的方式 我的特殊问题是 我想映射一个创建内存密集型对象的迭代器 并且不希望所有这些对象同时生成到内存中 我想看看各
  • 用于查找时间跨度的最大平均值的 LINQ 查询

    我有一组数据有两个点 瓦特 和时间戳 每个数据点间隔 1 秒 所以它看起来像这样 0 01 100 0 02 110 0 03 133 0 04 280 该数据集长达几个小时 我想编写一个查询 在其中可以找到不同时间段 5 秒 1 分钟 5
  • 如何在 Android Retrofit 中忽略 JSON 元素

    我正在开发一个 Android 应用程序 它使用 Android Retrofit 发送 JSON 它将 POJO 类转换为 JSON 它工作正常 但我需要在发送 JSON 时忽略 POJO 类中的一个元素 有谁知道 Android Ret
  • 在 linux ubuntu 中使用 CPAN 时,我应该使用 sudo / 作为 root 或作为我的默认用户运行它

    我收到这样的错误 Running make install Prepending blib arch and blib lib of 17 build dirs to PERL5LIB for install ERROR Can t cre
  • 将 Markdown 转换为 HTML 的正则表达式

    如何编写正则表达式将 mark 转换为 HTML 例如 您可以输入以下内容 This would be italicized text and this would be bold text 然后需要将其转换为 This would be
  • TomEE 8 服务器仅限于 Netbeans 15 中的 Java EE7 Web 应用程序

    所以我从这里安装了最新的 Apache TomEE 8 服务器 https tomee apache org download html https tomee apache org download html TomEE 服务器运行良好
  • 如何使用 OpenCV 和 Python 使用遮罩(或透明度)在图像中查找模板?

    假设我们正在寻找这个模板 我们模板的角是透明的 因此背景会有所不同 如下所示 假设我们可以在模板中使用以下掩码 找到它会很容易 我尝试过的 我努力了matchTemplate但它不支持蒙版 据我所知 并且在模板中使用 alpha 通道 透明
  • Angular:从外部访问 ng-content 嵌套组件方法

    我有两个共享组件 我希望父组件调用其子组件中的方法 共享组件 1 父组件 Component selector parent template div div div div
  • 在 ffmpeg 中将 2 个音频文件与一个视频合并

    我正在尝试合并 2 个音频文件 wav带视频文件 mp4 产生输出video mp4使用 ffmpeg 进行扩展Windows CMD 这是我尝试过的 ffmpeg i V MP4 i A1 WAV i A2 WAV map 0 v map
  • 在 C# 中检测多个同时按键

    我希望通过检测某些无法键入的组合键 转义序列 的按键来模拟 C 中的串行通信的超级终端功能 例如 Ctrl C Ctrl Z 等 我知道这些键有其 ASCII等价物 并且可以按原样传输 但我在检测多个按键时遇到问题 我提供一些代码作为参考
  • 顶部导航已隐藏

    当我滚动到页面底部并看到页脚时 我不希望隐藏导航顶部 下面是滚动之前的状态 Below is a screenshot when scrolling down to the page 这是代码
  • 从 int 中获取单个字节

    我得到了一个 int 数 例如 5630 十进制 二进制数是 00000000 00000000 00010101 11111110 我想获得十进制的第二个字节 00010101 我怎样才能得到它 您可以使用BitConverter Get
  • 有哪些类型的测试?

    我总是独自工作 我的测试方法通常是经常编译 并确保我所做的更改工作良好 如果不工作则修复它们 然而 我开始觉得这还不够 我对标准类型的测试感到好奇 有人可以告诉我基本测试 每个测试的简单示例以及为什么使用它 测试什么吗 Thanks 不同的
  • 使用故事板时,IBoutlets 很快为零

    在我的一个ViewControllers 当我到达viewWillAppear 我所有的IBOutlets are nil 我尝试查看 matt的解决方案 但它适用于笔尖而不是故事板 这只是当我在 iOS 7 设备上运行应用程序时出现的问题
  • 重新打包 .jar 文件

    我需要将 JRE7 库中的一些 jar 添加到我的 Android 项目中 但例如rt jar与以下内容相冲突android jar来自 Adroid 2 2 SDK 所以我收到此错误 不明智或错误地使用核心类 java 或 javax 当