Меню

Apktool ошибка при сборке

I am experiencing very annoying problems with the application apktool problem.
I do not understand what i am doing wrong, or what the problem is.
I tried this on debian , and on linux mint. I used different versions of apktool,

resulting in the same error:

I: Checking whether sources has changed...
I: Checking whether resources has changed...
I: Building resources...
Exception in thread "main" brut.androlib.AndrolibException: brut.common.BrutException: could not exec command: [aapt, p, -F, /tmp/APKTOOL3630495287059303807.tmp, -I, /home/awesomename/apktool/framework/1.apk, -S, /home/awesomename/out/./res, -M, /home/awesomename/out/./AndroidManifest.xml]
    at brut.androlib.res.AndrolibResources.aaptPackage(Unknown Source)
    at brut.androlib.Androlib.buildResourcesFull(Unknown Source)
    at brut.androlib.Androlib.buildResources(Unknown Source)
    at brut.androlib.Androlib.build(Unknown Source)
    at brut.androlib.Androlib.build(Unknown Source)
    at brut.apktool.Main.cmdBuild(Unknown Source)
    at brut.apktool.Main.main(Unknown Source)
Caused by: brut.common.BrutException: could not exec command: [aapt, p, -F, /tmp/APKTOOL3630495287059303807.tmp, -I, /home/windows/apktool/framework/1.apk, -S, /home/windows/out/./res, -M, /home/windows/out/./AndroidManifest.xml]
    at brut.util.OS.exec(Unknown Source)
    ... 7 more
Caused by: java.io.IOException: Cannot run program "aapt": error=2, No such file or directory
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:1041)
    at java.lang.Runtime.exec(Runtime.java:617)
    at java.lang.Runtime.exec(Runtime.java:485)
    ... 8 more
Caused by: java.io.IOException: error=2, No such file or directory
    at java.lang.UNIXProcess.forkAndExec(Native Method)
    at java.lang.UNIXProcess.<init>(UNIXProcess.java:135)
    at java.lang.ProcessImpl.start(ProcessImpl.java:130)
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:1022)
    ... 10 more

It seems it can not use aapt , but i read about apktool.
And it seems that aapt is build inside apktool , why is it not working ?

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and
privacy statement. We’ll occasionally send you account related emails.

Already on GitHub?
Sign in
to your account


Closed

nderkach opened this issue

Jun 30, 2015

· 6 comments

Comments

@nderkach

I’m trying to decompile and compile the following APK with debug symbols: https://dl.dropboxusercontent.com/u/5017232/Ticketmaster_1.6.4.1_30-orig.apk

./apktool d -d -f Ticketmaster_1.6.4.1_30-orig.apk -o out
./apktool b -d out -o Ticketmaster_1.6.4.1_30-new.apk

I’m using the latest apktool 2.0.0 with JDK 8. I’m running with the following issues when trying to build the apt back:

I: Using Apktool 2.0.0
I: Checking whether sources has changed...
I: Smaling smali folder into classes.dex...
I: Checking whether sources has changed...
I: Smaling smali_classes10 folder into classes10.dex...
I: Checking whether sources has changed...
I: Smaling smali_classes2 folder into classes2.dex...
I: Checking whether sources has changed...
I: Smaling smali_classes5 folder into classes5.dex...
I: Checking whether sources has changed...
I: Smaling smali_classes8 folder into classes8.dex...
I: Checking whether sources has changed...
I: Smaling smali_classes9 folder into classes9.dex...
I: Checking whether resources has changed...
I: Building resources...
/Users/nderkach/Desktop/ticketmaster/out/res/layout/activity_bootscreen.xml:9: error: No resource identifier found for attribute 'insetForeground' in package 'android'

/Users/nderkach/Desktop/ticketmaster/out/res/layout-v21/activity_bootscreen.xml:9: error: No resource identifier found for attribute 'insetForeground' in package 'android'

/Users/nderkach/Desktop/ticketmaster/out/res/layout/adu_walkthrough_activity.xml:6: error: No resource identifier found for attribute 'pageColor' in package 'android'

/Users/nderkach/Desktop/ticketmaster/out/res/layout/edp_combined_activity.xml:7: error: No resource identifier found for attribute 'pstsIndicatorColor' in package 'android'

/Users/nderkach/Desktop/ticketmaster/out/res/layout/horizontal_ticket_recto.xml:6: error: No resource identifier found for attribute 'labelStyle' in package 'android'

/Users/nderkach/Desktop/ticketmaster/out/res/layout/horizontal_ticket_recto.xml:6: error: No resource identifier found for attribute 'valueStyle' in package 'android'

/Users/nderkach/Desktop/ticketmaster/out/res/layout/tm_activity_integrated_listings.xml:34: error: Error: Integer types not allowed (at 'orientation' with value '1').

Exception in thread "main" brut.androlib.AndrolibException: brut.androlib.AndrolibException: brut.common.BrutException: could not exec command: [/var/folders/nc/9y2gpgzs1gz4wg9mp3spyfnm0000gn/T/brut_util_Jar_6348033727496735282.tmp, p, --debug-mode, --forced-package-id, 127, --min-sdk-version, 15, --target-sdk-version, 22, --version-code, 30, --version-name, 1.6.4.1, -F, /var/folders/nc/9y2gpgzs1gz4wg9mp3spyfnm0000gn/T/APKTOOL6979768093236566769.tmp, -0, arsc, -I, /Users/nderkach/Library/apktool/framework/1.apk, -S, /Users/nderkach/Desktop/ticketmaster/out/res, -M, /Users/nderkach/Desktop/ticketmaster/out/AndroidManifest.xml]
    at brut.androlib.Androlib.buildResourcesFull(Androlib.java:458)
    at brut.androlib.Androlib.buildResources(Androlib.java:396)
    at brut.androlib.Androlib.build(Androlib.java:285)
    at brut.androlib.Androlib.build(Androlib.java:256)
    at brut.apktool.Main.cmdBuild(Main.java:225)
    at brut.apktool.Main.main(Main.java:84)
Caused by: brut.androlib.AndrolibException: brut.common.BrutException: could not exec command: [/var/folders/nc/9y2gpgzs1gz4wg9mp3spyfnm0000gn/T/brut_util_Jar_6348033727496735282.tmp, p, --debug-mode, --forced-package-id, 127, --min-sdk-version, 15, --target-sdk-version, 22, --version-code, 30, --version-name, 1.6.4.1, -F, /var/folders/nc/9y2gpgzs1gz4wg9mp3spyfnm0000gn/T/APKTOOL6979768093236566769.tmp, -0, arsc, -I, /Users/nderkach/Library/apktool/framework/1.apk, -S, /Users/nderkach/Desktop/ticketmaster/out/res, -M, /Users/nderkach/Desktop/ticketmaster/out/AndroidManifest.xml]
    at brut.androlib.res.AndrolibResources.aaptPackage(AndrolibResources.java:419)
    at brut.androlib.Androlib.buildResourcesFull(Androlib.java:444)
    ... 5 more
Caused by: brut.common.BrutException: could not exec command: [/var/folders/nc/9y2gpgzs1gz4wg9mp3spyfnm0000gn/T/brut_util_Jar_6348033727496735282.tmp, p, --debug-mode, --forced-package-id, 127, --min-sdk-version, 15, --target-sdk-version, 22, --version-code, 30, --version-name, 1.6.4.1, -F, /var/folders/nc/9y2gpgzs1gz4wg9mp3spyfnm0000gn/T/APKTOOL6979768093236566769.tmp, -0, arsc, -I, /Users/nderkach/Library/apktool/framework/1.apk, -S, /Users/nderkach/Desktop/ticketmaster/out/res, -M, /Users/nderkach/Desktop/ticketmaster/out/AndroidManifest.xml]
    at brut.util.OS.exec(OS.java:89)
    at brut.androlib.res.AndrolibResources.aaptPackage(AndrolibResources.java:413)
    ... 6 more

I’ve tried to do the same without compiling and decompiling resource files, but then I run into an issue with [Fatal Error] AndroidManifest.xml:1:1: Content is not allowed in prolog

@iBotPeaches

It appears custom attributes (or rather attributes from a library), in this case com.android.support:design:22.2.0 are having troubles being decoded.

@bootstraponline

[Fatal Error] AndroidManifest.xml:1:1: Content is not allowed in prolog

I’m running into this as well. Why is AndroidManifest.xml even parsed if --no-res is set?

@ltoad

i have same issue

dex file compile success but …. Building resources… step error

I: Using Apktool 2.0.1
I: Checking whether sources has changed...
I: Smaling smali folder into classes.dex...
W: Unknown file type, ignoring: kat/smali/.DS_Store
W: Unknown file type, ignoring: kat/smali/android/.DS_Store
W: Unknown file type, ignoring: kat/smali/android/opengl/.DS_Store
I: Checking whether resources has changed...
I: Building resources...
warning: string 'body_for_snapshot_friends_email' has no default translation.
warning: string 'cover_date_format' has no default translation.
warning: string 'desc_for_emoticon_download' has no default translation.


.
. 
.


/Users/toto/Desktop/mobile/kat_1/res/layout-ldrtl-v17/vox_voice_activity.xml:76: error: No resource identifier found for attribute 'bg_type' in package 'android'

/Users/toto/Desktop/mobile/kat_1/res/layout-ldrtl-v17/vox_voice_activity.xml:84: error: No resource identifier found for attribute 'bg_type' in package 'android'

/Users/toto/Desktop/mobile/kat_1/res/layout-ldrtl-v17/vox_voice_activity.xml:92: error: No resource identifier found for attribute 'bg_type' in package 'android'

/Users/toto/Desktop/mobile/kat_1/res/layout/walkietalkie_layout.xml:5: error: No resource identifier found for attribute 'thm_background' in package 'android'

/Users/toto/Desktop/mobile/kat_1/res/layout/walkietalkie_layout.xml:9: error: No resource identifier found for attribute 'thm_textColor' in package 'android'

/Users/toto/Desktop/mobile/kat_1/res/layout-ldrtl-v17/walkietalkie_layout.xml:5: error: No resource identifier found for attribute 'thm_background' in package 'android'

/Users/toto/Desktop/mobile/kat_1/res/layout-ldrtl-v17/walkietalkie_layout.xml:9: error: No resource identifier found for attribute 'thm_textColor' in package 'android'

Exception in thread "main" brut.androlib.AndrolibException: brut.androlib.AndrolibException: brut.common.BrutException: could not exec command: [/var/folders/pq/1z00kxtn2yv3x6tf5t7_84y40000gn/T/brut_util_Jar_3636030068287513085.tmp, p, --forced-package-id, 127, --min-sdk-version, 14, --target-sdk-version, 22, --version-code, 1400205, --version-name, 5.1.4, -F, /var/folders/pq/1z00kxtn2yv3x6tf5t7_84y40000gn/T/APKTOOL1705594288349679015.tmp, -0, resources.arsc, -0, assets/katEffects-Android.zip, -0, arsc, -I, /Users/toto/Library/apktool/framework/1.apk, -S, /Users/toto/Desktop/mobile/kat_1/res, -M, /Users/toto/Desktop/mobile/kat_1/AndroidManifest.xml]
    at brut.androlib.Androlib.buildResourcesFull(Androlib.java:465)
    at brut.androlib.Androlib.buildResources(Androlib.java:403)
    at brut.androlib.Androlib.build(Androlib.java:291)
    at brut.androlib.Androlib.build(Androlib.java:261)
    at brut.apktool.Main.cmdBuild(Main.java:225)
    at brut.apktool.Main.main(Main.java:84)
Caused by: brut.androlib.AndrolibException: brut.common.BrutException: could Not

@jiaoyigui

i have same issue
dex file compile success but …. Building resources… step error

jiaoyigui-2:Downloads jiaoyigui$ apktool b hello
I: Using Apktool 2.0.3-831765-SNAPSHOT
I: Checking whether sources has changed...
I: Smaling smali folder into classes.dex...
I: Checking whether resources has changed...
I: Building resources...
/Users/jiaoyigui/Downloads/hello/res/values-v23/styles.xml:5: error: Error retrieving parent for item: No resource found that matches the given name '@android:style/AlertDialog'.

/Users/jiaoyigui/Downloads/hello/res/values-v23/styles.xml:6: error: Error retrieving parent for item: No resource found that matches the given name '@android:style/DialogWindowTitle'.

Exception in thread "main" brut.androlib.AndrolibException: brut.androlib.AndrolibException: brut.common.BrutException: could not exec command: [/var/folders/f1/kw9g28fn2dsb2_kwsj4y19nr0000gn/T/brut_util_Jar_686373888929815871.tmp, p, --forced-package-id, 127, --min-sdk-version, 7, --target-sdk-version, 22, --version-code, 450825, --version-name, 2.12.374, -F, /var/folders/f1/kw9g28fn2dsb2_kwsj4y19nr0000gn/T/APKTOOL8887438693574401727.tmp, -0, arsc, -0, arsc, -I, /Users/jiaoyigui/Library/apktool/framework/1.apk, -S, /Users/jiaoyigui/Downloads/hello/res, -M, /Users/jiaoyigui/Downloads/hello/AndroidManifest.xml]
    at brut.androlib.Androlib.buildResourcesFull(Androlib.java:472)
    at brut.androlib.Androlib.buildResources(Androlib.java:410)
    at brut.androlib.Androlib.build(Androlib.java:298)
    at brut.androlib.Androlib.build(Androlib.java:268)
    at brut.apktool.Main.cmdBuild(Main.java:225)
    at brut.apktool.Main.main(Main.java:84)
Caused by: brut.androlib.AndrolibException: brut.common.BrutException: could not exec command: [/var/folders/f1/kw9g28fn2dsb2_kwsj4y19nr0000gn/T/brut_util_Jar_686373888929815871.tmp, p, --forced-package-id, 127, --min-sdk-version, 7, --target-sdk-version, 22, --version-code, 450825, --version-name, 2.12.374, -F, /var/folders/f1/kw9g28fn2dsb2_kwsj4y19nr0000gn/T/APKTOOL8887438693574401727.tmp, -0, arsc, -0, arsc, -I, /Users/jiaoyigui/Library/apktool/framework/1.apk, -S, /Users/jiaoyigui/Downloads/hello/res, -M, /Users/jiaoyigui/Downloads/hello/AndroidManifest.xml]
    at brut.androlib.res.AndrolibResources.aaptPackage(AndrolibResources.java:425)
    at brut.androlib.Androlib.buildResourcesFull(Androlib.java:458)
    ... 5 more
Caused by: brut.common.BrutException: could not exec command: [/var/folders/f1/kw9g28fn2dsb2_kwsj4y19nr0000gn/T/brut_util_Jar_686373888929815871.tmp, p, --forced-package-id, 127, --min-sdk-version, 7, --target-sdk-version, 22, --version-code, 450825, --version-name, 2.12.374, -F, /var/folders/f1/kw9g28fn2dsb2_kwsj4y19nr0000gn/T/APKTOOL8887438693574401727.tmp, -0, arsc, -0, arsc, -I, /Users/jiaoyigui/Library/apktool/framework/1.apk, -S, /Users/jiaoyigui/Downloads/hello/res, -M, /Users/jiaoyigui/Downloads/hello/AndroidManifest.xml]
    at brut.util.OS.exec(OS.java:89)
    at brut.androlib.res.AndrolibResources.aaptPackage(AndrolibResources.java:419)
    ... 6 more

and my resources is changed. How can I recompile it?

@iBotPeaches

Closing in favour of #1157

В статье про изготовление копий приложений для Android я упоминал о приложении SmartAPKTool. Оно может распаковывать, запаковывать и подписывать изменённые apk-файлы. Её достоинством является наличие графического интерфейса. Однако есть и серьёзный недостаток. SmartAPKTool давно не обновлялся, и программа некорректно распаковывает и запаковывает приложения для свежих версий Android. Поэтому здесь я попытаюсь объяснить, как пользоваться для этих целей приложением apktool.

Замечание 1.
Программу SmartAPKTool по-прежнему удобно использовать для подписи собранных apk-файлов.
Замечание 2.
Ссылки на упомянутые в статье программы находятся внизу ↓

Программа apktool не имеет графического интерфейса. Это является минусом для тех, кто не привык работать с командной строкой. Но есть и плюс: в отличие от SmartAPKTool, мы будем видеть все ошибки, а значит будем знать, что исправить.

Скачаем два архива: один общий для всех систем, другой для нашей системы (в примере — Windows):

Screenshot_1

Распакуем оба архива в одну и ту же пустую папку (в нашем примере C:apktool). Её содержимое должно получиться таким:

Screenshot_2

С этого момента мы можем использовать программу apktool.

Замечание 3.
Пользователям 64-битных версий Linux нужно будет установить пакет ia32-libs:

sudo apt-get install ia32-libs

В эту же папку мы кладём тот файл, который нам нужно распаковать. Например, пусть он назвыается orig.apk
Нажав клавишу Shift и удерживая её, щёлкаем правой кнопкой мыши на любом пустом пространстве папки (щёлкать не по файлам!). После этого выбираем пункт „Открыть окно команд“. В появившейся консоли набираем[важно!]:

Файл распакуется:

Screenshot_3

Теперь у нас в директории C:apktool есть папка с распакованным приложением. Называется она так же, как и исходный файл, за вычетом расширения: C:apktoolorig. Мы можем менять исходные файлы так, как описано в статье Android: как установить два одинаковых приложения на один телефон. После того, как мы сделали изменения, соберём копию приложения, запаковав исходные файлы в apk:

apktool build orig result.apk

Здесь result.apk — имя файла, которое мы придумали для билда копии. Если ошибок нет, то файл соберётся:

Screenshot_4

Остальное выходит за рамки темы статьи:

  1. Если при сборке будут ошибки, нужно найти их причину и исправить.
  2. Осталось подписать получившийся файл result.apk. Это можно сделать с помощью SmartAPKTool, как говорилось выше; в нём всё интуитивно понятно. Есть также прочие способы подписать apk-файл.
  3. При установке копии, при её запуске или работе также могут возникать ошибки. Их нужно отлавливать с помощью утилиты adb, входящей в состав Android SDK.

Подписывать приложение надо обязательно, иначе оно не установится. Ошибки же встречаются не так часто, и самые распространённые вызывающие их проблемы описаны в статье Android: как установить два одинаковых приложения на один телефон.

Ссылки на упомянутые программы:

  • SmartAPKTool
  • apktool

Важное замечание по apktool версий 2.x

В версии 2.0.0-Beta7 нужно применять ключ --output, чтобы указать директорию при декомпиляции и результирующий файл при сборке:

apktool decode orig.apk output orig
apktool build orig output result.apk

Назад в текст ↑

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

А вот еще интересные материалы:

  • Яшка сломя голову остановился исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного где ошибка
  • Apk add alpine desktop ошибка
  • Api яндекс директ ошибки