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:\Users\Jack\.gradle\caches\transforms-2\files-2.1\6a2e5ecc8c7c41647d2935ab32b14167\jetified-firebase-messaging-20.0.0\res";
            string targetFolder = @"D:\test\jars\res";

            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项目的  build\intermediates\merged_manifests\debug 目录下,找到AndroidManifest.xml 文件,把里面一些依赖库的内容,拷贝出来,这些也用得着

posted @   IWing  阅读(662)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
历史上的今天:
2016-09-28 让Android的WebView支持html里面的文件上传
点击右上角即可分享
微信分享提示