Skip to content
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

[BUG] Exception in thread "main" while parsing a block mapping #3169

Closed
HarukaMomono opened this issue Jul 19, 2023 · 2 comments · Fixed by #3172
Closed

[BUG] Exception in thread "main" while parsing a block mapping #3169

HarukaMomono opened this issue Jul 19, 2023 · 2 comments · Fixed by #3172
Labels
Milestone

Comments

@HarukaMomono
Copy link

HarukaMomono commented Jul 19, 2023

Information

  1. Apktool Version (apktool -version) - 2.8.0
  2. Operating System (Mac, Linux, Windows) - Windows
  3. APK From? (Playstore, ROM, Other) - From internet.
  4. Java Version (java --version) - java version "1.8.0_371"
    Java(TM) SE Runtime Environment (build 1.8.0_371-b11)
    Java HotSpot(TM) 64-Bit Server VM (build 25.371-b11, mixed mode)

Stacktrace/Logcat

>I: Using Apktool 2.8.0
>Exception in thread "main" while parsing a block mapping
> in 'reader', line 2, column 1:
>    apkFileName: project.apk
>    ^
>expected <block end>, but found '-'
> in 'reader', line 3, column 1:
>    - resources.arsc
>    ^
>	at org.yaml.snakeyaml.parser.ParserImpl$ParseBlockMappingKey.produce(ParserImpl.java:665)
>	at org.yaml.snakeyaml.parser.ParserImpl.peekEvent(ParserImpl.java:171)
>	at org.yaml.snakeyaml.comments.CommentEventsCollector$1.peek(CommentEventsCollector.java:57)
>	at org.yaml.snakeyaml.comments.CommentEventsCollector$1.peek(CommentEventsCollector.java:43)
>	at org.yaml.snakeyaml.comments.CommentEventsCollector.collectEvents(CommentEventsCollector.java:136)
>	at org.yaml.snakeyaml.comments.CommentEventsCollector.collectEvents(CommentEventsCollector.java:116)
>	at org.yaml.snakeyaml.composer.Composer.composeScalarNode(Composer.java:221)
>	at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:190)
>	at org.yaml.snakeyaml.composer.Composer.composeValueNode(Composer.java:321)
>	at org.yaml.snakeyaml.composer.Composer.composeMappingChildren(Composer.java:312)
>	at org.yaml.snakeyaml.composer.Composer.composeMappingNode(Composer.java:293)
>	at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:194)
>	at org.yaml.snakeyaml.composer.Composer.getNode(Composer.java:116)
>	at org.yaml.snakeyaml.composer.Composer.getSingleNode(Composer.java:142)
>	at org.yaml.snakeyaml.constructor.BaseConstructor.getSingleData(BaseConstructor.java:155)
>	at org.yaml.snakeyaml.Yaml.loadFromReader(Yaml.java:477)
>	at org.yaml.snakeyaml.Yaml.loadAs(Yaml.java:470)
>	at brut.androlib.apk.ApkInfo.load(ApkInfo.java:164)
>	at brut.androlib.apk.ApkInfo.load(ApkInfo.java:172)
>	at brut.androlib.ApkBuilder.build(ApkBuilder.java:82)
>	at brut.apktool.Main.cmdBuild(Main.java:261)
>	at brut.apktool.Main.main(Main.java:90)

Steps to Reproduce

  1. Decompile apk .
  2. Compile apk directly.
  3. Then, Missing contents of "compressionType: false" and "doNotCompress:" in the file apktool.yml
!!brut.androlib.apk.ApkInfo
apkFileName: project.apk
- resources.arsc
- png
isFrameworkApk: false
mApkFileName: Terminal Emulator.apk
mSdkInfo:
  minSdkVersion: '23'
packageInfo:
  forcedPackageId: '127'
  renameManifestPackage: null
resourcesAreCompressed: false
sharedLibrary: false
sparseResources: true
unknownFiles: {}
usesFramework:
  ids:
  - 1
  tag: null
version: 2.8.0
versionInfo:
  versionCode: '71'
  versionName: 1.0.70

Frameworks

If this APK is from an OEM ROM (Samsung, HTC, LG). Please attach framework files
(.apks that live in /system/framework or /system/priv-app)

APK

If this APK can be freely shared, please upload/attach a link to it.
Terminal Emulator.zip

Questions to ask before submission

  1. Have you tried apktool d, apktool b without changing anything? Without changing anything.
  2. If you are trying to install a modified apk, did you resign it?
  3. Are you using the latest apktool version? Yes, latest version.
@iBotPeaches
Copy link
Owner

Sadly seems nothing in test covered the exact formatting of the generated apktool.yml

Screenshot from 2023-07-18 22-51-57
left is 2.7.0, right is 2.8.0

It looks like we are missing as you mentioned:

  • compressionType
  • resourcesAreCompressed
  • targetSdkVersion (from sdkInfo)

Will ping @sv99 in case these ring a bell. Otherwise I'll take a look when I have some time tomorrow and see what we can do.

@iBotPeaches iBotPeaches added this to the v2.8.1 milestone Jul 19, 2023
@iBotPeaches
Copy link
Owner

Okay, so here is my plan

  • mApkFileName should return to apkFileName
  • mSdkInfo should return to sdkInfo
  • resourcesAreCompressed was what compressionType was, I like the new name, but understand that can be a breaking change for tools
  • sdkInfo.* missing is because minSdkVersion will overwrite all

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants