{"id":15111151,"url":"https://github.com/hacktons/dexing","last_synced_at":"2025-10-23T04:31:18.395Z","repository":{"id":99203266,"uuid":"219990044","full_name":"hacktons/dexing","owner":"hacktons","description":"No more headache with Multidex; Get rid of maintaining the mainDexList.txt now","archived":false,"fork":false,"pushed_at":"2020-04-07T07:08:43.000Z","size":2058,"stargazers_count":5,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-30T17:27:19.793Z","etag":null,"topics":["android","multidex","multidex-plugin"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hacktons.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-11-06T12:19:38.000Z","updated_at":"2024-04-25T12:56:10.000Z","dependencies_parsed_at":"2023-12-09T22:15:09.368Z","dependency_job_id":null,"html_url":"https://github.com/hacktons/dexing","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hacktons%2Fdexing","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hacktons%2Fdexing/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hacktons%2Fdexing/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hacktons%2Fdexing/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hacktons","download_url":"https://codeload.github.com/hacktons/dexing/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":237780065,"owners_count":19365117,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","multidex","multidex-plugin"],"created_at":"2024-09-26T00:01:53.636Z","updated_at":"2025-10-23T04:31:10.587Z","avatar_url":"https://github.com/hacktons.png","language":"Java","readme":"# Dexing\n\n[![Maven Central](https://img.shields.io/maven-central/v/com.github.avenwu/dexing)](https://search.maven.org/search?q=a:dexing)\n[![github](https://img.shields.io/badge/platform-android-ff69b4.svg)](https://github.com/hacktons/convex_bottom_bar)\n[![License Apache](https://img.shields.io/badge/license-apache2.0-blue)](http://www.apache.org/licenses/LICENSE-2.0.txt)\n[![Build Status](https://travis-ci.com/hacktons/dexing.svg?branch=master)](https://travis-ci.com/hacktons/dexing)\n\n\nWhen your app and the libraries it references exceed 65,536 enmethods, we need to ship apk with multidex enable, usually follow the guides:\n[Enable multidex for apps with over 64K methods](https://developer.android.com/studio/build/multidex).\n\nHowever the main dex `classes.dex` can still be too large; It' difficult to maintain the mainDexList.txt since your app's keep growing.\n\nWhat's more, the gradle task for multidex can changes too, that may break our task hook.\n\nThe `dexing` library can help you get rid of maintaining the mainDexList.txt，since we've minimize the classes needed before `multidex` and `optdex`:\n\n![multidex](doc/multidex.png)\n\n## How to use\n\n1.Add dependence to `dexing` aar：\n\n```gradle\nimplementation 'com.github.avenwu:dexing:$latest_version'\n```\n\n2.Install dex in application:\n\nThe install api is same as `multidex support library`:\n\n```java\nimport cn.hacktons.dexing.Multidex;\n\npublic class CustomApplication extends Application {\n    @Override\n    protected void attachBaseContext(Context base) {\n        super.attachBaseContext(base);\n        Multidex.install(this);\n    }\n}\n```\n\n\n3.Keep rule\nMake sure the dexing package is included in main dex. If not, add this rule into your dex keep list:\n```proguard\n# multidex-config.pro\n-keep class cn.hacktons.dexing.**\n```\n\n```groovy\nmultiDexKeepProguard file('multidex-config.pro')\n```\n\n## Advance\n\nWe've provided a Activity with simple loading process bar when dex is installing. You may replace the loading layout through the second parameter of `Multidex.install`:\n```java\nMultidex.install(this, R.layout.custom_loading);\n```\n\nIf there are ClassNotFoundException, keep missing class in the `multiDexKeepProguard` file as [Enable multidex for apps with over 64K methods](https://developer.android.com/studio/build/multidex) mentioned.\n\n## Debug\nIf dex installation doest work well, you can enable logging to see the whole process:\n\n```java\n// enable log\nMultidex.enableLog();\nMultidex.install(this);\n```\nHere are some example logs, including `main process` and `:nodex process`.\n\n\u003cimg src=\"doc/main-process-log.png\" alt=\"main-process-log\" width=\"600\"/\u003e\n\n\u003cimg src=\"doc/nodex-process-log.png\" alt=\"nodex-process-log\" width=\"600\"/\u003e","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhacktons%2Fdexing","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhacktons%2Fdexing","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhacktons%2Fdexing/lists"}