Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/181.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在android studio中编辑.jar类文件_Java_Android_Jar_Compilation_Decompiling - Fatal编程技术网

Java 如何在android studio中编辑.jar类文件

Java 如何在android studio中编辑.jar类文件,java,android,jar,compilation,decompiling,Java,Android,Jar,Compilation,Decompiling,我从github repo下载了这样一个开源android项目,我想编辑的类在build/intermediates/exploadded aar/ly.img.android/photo-editor-sdk/2.0.13/jars下,然后是classes.jar文件夹,在这个文件夹中我有更多的文件夹,其中一个孩子包含类,我想在名为“imglonfig.class”的文件中编辑,当我解压缩.jar文件并转到那个类时,我发现它是这样的,我要做的是转到在线反编译器,然后我下载了一个反编译类,然后编

我从github repo下载了这样一个开源android项目,我想编辑的类在build/intermediates/exploadded aar/ly.img.android/photo-editor-sdk/2.0.13/jars下,然后是classes.jar文件夹,在这个文件夹中我有更多的文件夹,其中一个孩子包含类,我想在名为“imglonfig.class”的文件中编辑,当我解压缩.jar文件并转到那个类时,我发现它是这样的,我要做的是转到在线反编译器,然后我下载了一个反编译类,然后编辑我想要的任何内容,然后我想用我新编辑的文件替换.jar文件中的imglonfig.class文件, 我在Google和Stackoverflow中尝试了这个解决方案和其他许多解决方案,但我的类仍然没有编辑,我也尝试创建这样一个新类并复制我想要的类的代码,但我不知道如何使代码使用新类而不是旧类,我也尝试过扩展它并在其中进行更改,但我也失败了:/

NP: 我在android studio中的类看起来是这样的:它不接受任何编辑

,我的android studio是2.1.2
我想在github中编辑的库是,

如果要更改代码,则需要重新编译源代码以获得更新的jar。如果项目是开源的,那么github repo上应该有关于如何使用maven/gradle等编译它的说明

你应该做的是:

  • 从github repo下载源代码,而不是编译的jar文件
  • 这将为您提供可编辑的.java源代码文件,而不是编译的字节码.class文件。您可以轻松地编辑.java文件,而无需先对其进行反编译
  • 从源代码编译jar
  • 人类可读的java源文件由JDK编译成机器可读的字节码,并存储在.class文件中。类文件然后打包在.jar文件中


    当您反编译.class时,您与.java文件的距离足够近,但在编译和反编译后,某些内容将不完全相同。

    您只需下载该项目,然后将其解压缩到pc中的任何文件夹中,然后作为一种模式导入,这样您就可以轻松编辑它-感谢快速响应-但是,我如何将其作为模块导入,您能告诉我这样做的步骤吗?img.ly库许可证不允许您修改它。当你发布一个带有这样一个库的应用程序时,你可能会遇到法律上的麻烦。甚至我也会为这样的行为这么做@zapl@zapl,对不起,但据github repo称,他们在文档中有一个选项,名为“为自己的Android应用自定义SDK配置”。这正是我想要的,那么你怎么说我不能编辑它的工具呢?谢谢你,你添加了新的信息。对我来说(我真的很感激),我知道哪里是我的错,简单地说,这与编译/反编译无关,而是与我应该阅读我所使用的东西的整个文档的重要性有关。:)