Как преобразовать .jar или .class в .dex файл? - PullRequest
18 голосов
/ 02 декабря 2011

Я собираюсь редактировать сервер Opera Mini v6.5, потому что он заблокирован в нашей стране.

Теперь я распаковал извлеченные классы .apk-файла. Затем DEX преобразовал его через dex2jar.bat, теперьизменил сервер.

Моя проблема в том, что я хочу перепаковать .jar или .class в classes.Dex.Как мне это сделать?

Ответы [ 5 ]

32 голосов
/ 31 декабря 2012

Вот решение, которое было полезно в моем случае ...

Предположим, файл .jar находится в "c: \ temp \ in.jar"В окне командной строки перейдите к .. \ android-sdk \ platform-tools.Для получения .apk выполните:

dx --dex --output="c:\temp\app.apk" "c:\temp\in.jar"

Для получения .dex файла выполните:

dx --dex --output="c:\temp\dx.dex" "c:\temp\in.jar"
1 голос
/ 18 июля 2017

Для mac инструмент команды dx хранится в другом каталоге, как указано в верхнем ответе.Вот как вы это делаете в Mac:

   exampleName$ /Users/exampleName/Library/Android/sdk/build-tools/25.0.2/dx --dex --output="/Users/exampleName/Downloads/classes-dex2jar.jar" "/Users/exampleName/Downloads/name.dex"

Более подробное объяснение:

  • Инструмент dx хранится в Android SDK, но вдругой каталог на Mac, путь для Mac /Users/exampleName/Library/Android/sdk/build-tools/25.0.2/
  • Команда одинакова для Windows и Mac, путь просто отличается
  • Команда для обеих платформ dx --dex--output="c:\temp\app.apk" "c:\temp\in.jar"
  • Инструменту может потребоваться несколько минут для создания файла dex

Если по какой-то причине он все еще не работает, убедитесь, что вы выполняете следующие требования:

enter image description here

Я знаю, что уже поздно, но мне пришлось самому в этом разобраться после нескольких часов проб и ошибок - надеюсь, это поможет какому-нибудь другому пользователю Mac

0 голосов
/ 04 января 2019

Чтобы избежать загрузки всей Android Studio: Вы можете перейти к command-tools, загрузить и извлечь папку. Затем зайдите в него и найдите ваш sdkmanager инструмент. Затем в командной строке введите sdkmanager "build-tools;28.0.1". Вы можете выбрать, какая версия инструментов сборки подходит в зависимости от версии Java, с которой вы работаете. Это загрузит его в корневой каталог инструментов командной строки. Зайдите в эту папку и вы увидите инструмент dx. Затем вы можете набрать dx --dex --output="nameoffile.dex" nameoffile.jar.

Небольшое дополнительное примечание: если вы пытаетесь конвертировать массивную банку, вы можете получить ошибку OUT OF MEMORY. В этом случае вы просто передаете JVM опцию увеличения кучи dx -JXmx256m ....

0 голосов
/ 30 мая 2013

Звучит так, как будто вам нужен apktool , он позволяет вам перепаковать и перепаковывать apk, без необходимости запускать dx и самостоятельно.

Вот статья о том, как распаковать и перепаковать

0 голосов
/ 02 декабря 2011

Чтобы дексифицировать файл jar, вы должны использовать dx.bat в папке вашего инструмента SDK для платформы. Вы также можете посмотреть на задачу -dex внутри файла build.xml внутри вашей папки tools \ ant в вашем SDK.

...