android studio 如何把依赖导出成 jar

反编译工具

dex-tools-2.1-SNAPSHOT

第一步

用一个普通的app工程,引用所有的库,然后生成apk文件

第二步

把apk文件,改扩展名为zip,解压后,里面有几个*.dex文件,拷贝到dex-tool反编译工具目录下,

用命令:

d2j-dex2jar.bat -f classes.dex

反编译所有的dex文件为jar文件,把jar扩展名改为zip,然后用压缩软件打开,把里面无用的类删除掉,再改扩展名回jar

第三步,找出所有资源文件

应用库会自带资源文件,这些也得找出来

 在project目录下,找到External Libraries,里面有所有依赖库,展开,能看到res,右键copy path,

拷贝下来res的路径,然后用以下c#代码,合并资源文件

        [TestMethod]
        public void copyRes()
        {
            string srcFolder = @"C:UsersJack.gradlecaches	ransforms-2files-2.16a2e5ecc8c7c41647d2935ab32b14167jetified-firebase-messaging-20.0.0
es";
            string targetFolder = @"D:	estjars
es";

            var dirs = System.IO.Directory.GetDirectories(srcFolder);
            foreach( var dir in dirs )
            {
                var name = Path.GetFileName(dir);
                if (Directory.Exists(targetFolder + "\" + name) == false)
                    Directory.CreateDirectory(targetFolder + "\" + name);

                var files = Directory.GetFiles(dir);
                foreach( var file in files )
                {
                    var filename = Path.GetFileName(file);
                    var targetfile = targetFolder + "\" + name + "\" + filename;
                    if ( File.Exists( targetfile ) == false )
                    {
                        File.Copy(file, targetfile);
                    }
                    else if( Path.GetExtension(file) == ".xml" )
                    {
                        XmlDocument xmldoc1 = new XmlDocument();
                        xmldoc1.Load(file);

                        XmlDocument xmldoc2 = new XmlDocument();
                        xmldoc2.Load(targetfile);

                        if (xmldoc2.DocumentElement.InnerXml != xmldoc1.DocumentElement.InnerXml)
                        {
                            xmldoc2.DocumentElement.InnerXml += xmldoc1.DocumentElement.InnerXml;

                            xmldoc2.Save(targetfile);
                        }
                    }
                    else
                    {

                    }
                }
            }
        }

最后一步,AndroidManifest.xml文件

在app项目的  buildintermediatesmerged_manifestsdebug 目录下,找到AndroidManifest.xml 文件,把里面一些依赖库的内容,拷贝出来,这些也用得着

原文地址:https://www.cnblogs.com/IWings/p/13743922.html