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

error: failed to deserialize resources.pb: unknown type 'macro' #29

Closed
Majidahmadi opened this issue Jul 26, 2022 · 19 comments
Closed

error: failed to deserialize resources.pb: unknown type 'macro' #29

Majidahmadi opened this issue Jul 26, 2022 · 19 comments
Labels
bug Something isn't working

Comments

@Majidahmadi
Copy link

این خطا بعد از بروزرسانی های مکرر روی پروژه برای ساین فایل aab صادر میشود. لطفا راهنمایی بفرمایید.

C:\Users\mypc\AppData\Local\Temp\3859703532227306912\proto.apk: error: failed to deserialize resources.pb: unknown type 'macro'.
C:\Users\mypc\AppData\Local\Temp\3859703532227306912\proto.apk: error: failed to load APK.
Command '[C:\Users\mypc\AppData\Local\Temp\AutoValue_BuildApksCommand8906874086694050195\output\windows\aapt2.exe, convert, --output-format, binary, -o, C:\Users\mypc\AppData\Local\Temp\3859703532227306912\binary.apk, C:\Users\mypc\AppData\Local\Temp\3859703532227306912\proto.apk]' didn't terminate successfully (exit code: 1). Check the logs.
[com.android.tools.build.bundletool.model.exceptions.InternalExceptionBuilder.build(InternalExceptionBuilder.java:57), com.android.tools.build.bundletool.model.DefaultCommandExecutor.executeImpl(DefaultCommandExecutor.java:57), com.android.tools.build.bundletool.model.DefaultCommandExecutor.execute(DefaultCommandExecutor.java:33), com.android.tools.build.bundletool.model.Aapt2Command$1.convertApkProtoToBinary(Aapt2Command.java:41), com.android.tools.build.bundletool.io.ApkzlibApkSerializerHelper.writeToZipFile(ApkzlibApkSerializerHelper.java:122), com.android.tools.build.bundletool.io.ApkzlibApkSerializerHelper.writeToZipFile(ApkzlibApkSerializerHelper.java:101), com.android.tools.build.bundletool.io.SplitApkSerializer.writeToDisk(SplitApkSerializer.java:68), com.android.tools.build.bundletool.io.SplitApkSerializer.writeSplitToDisk(SplitApkSerializer.java:42), com.android.tools.build.bundletool.io.ApkSetBuilderFactory$ApkSetArchiveBuilder.addSplitApk(ApkSetBuilderFactory.java:106), com.android.tools.build.bundletool.io.ApkSerializerManager$ApkSerializer.serialize(ApkSerializerManager.java:461), com.android.tools.build.bundletool.io.ApkSerializerManager.lambda$null$3(ApkSerializerManager.java:225), com.google.common.util.concurrent.TrustedListenableFutureTask$TrustedFutureInterruptibleTask.runInterruptibly(TrustedListenableFutureTask.java:125), com.google.common.util.concurrent.InterruptibleTask.run(InterruptibleTask.java:57), com.google.common.util.concurrent.TrustedListenableFutureTask.run(TrustedListenableFutureTask.java:78), java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136), java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635), java.base/java.lang.Thread.run(Thread.java:833)]
@maze1377
Copy link
Collaborator

با سلام
برای تولید apk از فایل aab شما از ابزار bundle tool گوگل استفاده میکنیم.
خطایی که دریافت کردید از این لایه raise شده
به نظر میرسه نوع macro که استفاده کردید شناخته شده نیست
لطفا سمت کد خودتون را دقیق تر بررسی کنید:
https://android.googlesource.com/platform/frameworks/base/+/refs/heads/master/tools/aapt2/format/proto/ProtoDeserialize.cpp#435

@Majidahmadi
Copy link
Author

در ریسورس های پروژه هیچ فایلی با پسوند macro وجود نداره ولی چون از کتابخانه Jetpack Data Store استفاده کرده ایم ، تصور من اینه که مشکل از این موضوع بخاطر فایل proto3 باشه ، آیا ممکنه به این دلیل باشه یا مشکل رو فقط در دایرکتوری res دنبالش باشیم؟

@Majidahmadi
Copy link
Author

به نظر میرسه نوع macro که استفاده کردید شناخته شده نیست

منظورتون از نوع ماکرویی که استفاده کردیم چی هست؟

@maze1377
Copy link
Collaborator

سلام مجید جان این تعریف macro هست که گوگل ارایه میده:
In computer programming, a macro is a rule or pattern that specifies how a certain input should be mapped to a replacement output. Applying a macro to an input is known as macro expansion. The input and output may be a sequence of lexical tokens or characters, or a syntax tree.

یعنی قرار نیست فایلی داشته باشی که پسوندش macro باشه در واقع زمانی که داره syntax tree ات را برای تحلیل کردن میسازه یک موردی تعریف شده اونجا که شناخته شده نیست برای aapt گوگل و نمیتونه تشخیصش بده.

میتونی این مورد را با bundle tool خود گوگل پلی هم تست کنی.

@maze1377
Copy link
Collaborator

اگر با bundle tool خودتون درست داره این مورد کار میکنه لطف کن نسخه اش را به ما بگو تا بتونیم دقیق تر این مورد را بررسی کنیم.

@RezaDizaji
Copy link

سلام خدمت دوستان و همکاران. متاسفانه بنده هم به این مشکل خوردم با bundlesigner بازار، ورژن‌های مختلف هم امتحان کردم از همین آخری که ۰.۱.۱۰ باشه تا ۰.۱.۲.
ولی جواب نداد. رفتم پیشنهاد @maze1377 رو اجرا کردم و با bundletool گوگل ورژن ۱.۱۱.۰ و دستوری که پایین میذارم یه فایل apks درست کردم و مشکلی نداشتم.

java -jar bundletool-all-1.11.0.jar build-apks --bundle=bazaar/release/app-bazaar-release.aab --output=output/my_app.apks

امیدوارم کمکی کرده باشم و همت کنید این مشکل زودتر حل بشه تا بازم آپدیتا رو بی دردسر منتشر کنیم. 🤦🏻‍♂️

@mahboobehad
Copy link
Contributor

سلام
ممنونم برای وقتی که گذاشتید.
نسخه‌ی bundletool استفاده شده در پروژه‌ی bundle signer قدیمی‌تر از نسخه‌ای هستید که برای تولید باندل استفاده کردید. ما بروزرسانی bundle signer رو بررسی می‌کنیم. در این بازه اگر ممکنه فایل باندل رو با نسخه 1.4.0 از bundletool تولید کنید.

@mahboobehad mahboobehad added the bug Something isn't working label Aug 2, 2022
@RezaDizaji
Copy link

سلام ممنونم برای وقتی که گذاشتید. نسخه‌ی bundletool استفاده شده در پروژه‌ی bundle signer قدیمی‌تر از نسخه‌ای هستید که برای تولید باندل استفاده کردید. ما بروزرسانی bundle signer رو بررسی می‌کنیم. در این بازه اگر ممکنه فایل باندل رو با نسخه 1.4.0 از bundletool تولید کنید.

خواهش می‌کنم لطف دارید. بنده کاری که گفتید انجام دادم و همون ارور رو گرفتم با نسخه‌ی ۱.۴.۰ bundletool. اگه bundletool رو آپدیت کنید تو پکیج مشکل حل میشه.
ممنون از شما.

اینم ارور bundletool:
/var/folders/7b/32dqrtq5775660lrb2c06cm40000gn/T/13059121098207816770/proto.apk: error: failed to deserialize resources.pb: unknown type 'macro'. /var/folders/7b/32dqrtq5775660lrb2c06cm40000gn/T/13059121098207816770/proto.apk: error: failed to load APK. [BT:1.4.0] Error: Command '[/var/folders/7b/32dqrtq5775660lrb2c06cm40000gn/T/AutoValue_BuildApksCommand5313920202184340379/output/macos/aapt2, convert, --output-format, binary, -o, /var/folders/7b/32dqrtq5775660lrb2c06cm40000gn/T/13059121098207816770/binary.apk, /var/folders/7b/32dqrtq5775660lrb2c06cm40000gn/T/13059121098207816770/proto.apk]' didn't terminate successfully (exit code: 1). Check the logs. com.android.tools.build.bundletool.model.exceptions.CommandExecutionException: Command '[/var/folders/7b/32dqrtq5775660lrb2c06cm40000gn/T/AutoValue_BuildApksCommand5313920202184340379/output/macos/aapt2, convert, --output-format, binary, -o, /var/folders/7b/32dqrtq5775660lrb2c06cm40000gn/T/13059121098207816770/binary.apk, /var/folders/7b/32dqrtq5775660lrb2c06cm40000gn/T/13059121098207816770/proto.apk]' didn't terminate successfully (exit code: 1). Check the logs. at com.android.tools.build.bundletool.model.exceptions.InternalExceptionBuilder.build(InternalExceptionBuilder.java:57) at com.android.tools.build.bundletool.model.DefaultCommandExecutor.executeImpl(DefaultCommandExecutor.java:57) at com.android.tools.build.bundletool.model.DefaultCommandExecutor.execute(DefaultCommandExecutor.java:33) at com.android.tools.build.bundletool.model.Aapt2Command$1.convertApkProtoToBinary(Aapt2Command.java:41) at com.android.tools.build.bundletool.io.ApkzlibApkSerializerHelper.writeToZipFile(ApkzlibApkSerializerHelper.java:122) at com.android.tools.build.bundletool.io.ApkzlibApkSerializerHelper.writeToZipFile(ApkzlibApkSerializerHelper.java:101) at com.android.tools.build.bundletool.io.SplitApkSerializer.writeToDisk(SplitApkSerializer.java:68) at com.android.tools.build.bundletool.io.SplitApkSerializer.writeSplitToDisk(SplitApkSerializer.java:42) at com.android.tools.build.bundletool.io.ApkSetBuilderFactory$ApkSetArchiveBuilder.addSplitApk(ApkSetBuilderFactory.java:106) at com.android.tools.build.bundletool.io.ApkSerializerManager$ApkSerializer.serialize(ApkSerializerManager.java:461) at com.android.tools.build.bundletool.io.ApkSerializerManager.lambda$null$3(ApkSerializerManager.java:225) at com.google.common.util.concurrent.TrustedListenableFutureTask$TrustedFutureInterruptibleTask.runInterruptibly(TrustedListenableFutureTask.java:117) at com.google.common.util.concurrent.InterruptibleTask.run(InterruptibleTask.java:38) at com.google.common.util.concurrent.TrustedListenableFutureTask.run(TrustedListenableFutureTask.java:77) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.base/java.lang.Thread.run(Unknown Source)

@Majidahmadi
Copy link
Author

ما هم با نسخه 1.11.0 bundletool تونستم از فایل aab خروجی های مختلف بگیرم ، اما بهرحال ممکنه با بروزرسانی نسخه استفاده شده در پروژه bundle signer مشکل رفع بشه ، تیم ما هنوز تمرکز روی این مشکل نگذاشتند و بزودی اگر توانستیم دلیل بروز خطا رو پیدا کنیم گزارش خواهیم داد.
امیدوارم تا آن موقع شما راه حل را زودتر پیدا کنید .

@maze1377
Copy link
Collaborator

maze1377 commented Aug 2, 2022

در ورژن ۱.۱۱ این مشکل حل شده
دوباره تلاش کنید.

@maze1377 maze1377 closed this as completed Aug 2, 2022
@Majidahmadi
Copy link
Author

متن خطا تغییر کرده اما هنوز خطایی با همون مضمون رو میده

C:\Users\username\AppData\Local\Temp\15025138391400042176\proto12.apk: error: failed to deserialize resources.pb: unknown type 'macro'. C:\Users\username\AppData\Local\Temp\15025138391400042176\proto12.apk: error: failed to load APK. ziparchive W 08-02 16:43:51 24212 24844 Unable to open 'C:\Users\username\AppData\Local\Temp\15025138391400042176\proto18.apk': No such file or directory C:\Users\username\AppData\Local\Temp\15025138391400042176\proto18.apk: error: failed opening zip: I/O error. C:\Users\username\AppData\Local\Temp\15025138391400042176\proto18.apk: error: failed to load APK. Command '[C:\Users\username\AppData\Local\Temp\AutoValue_BuildApksCommand18406325469524656845\output\windows\aapt2.exe, convert, --output-format, binary, -o, C:\Users\username\AppData\Local\Temp\15025138391400042176\binary16.apk, C:\Users\username\AppData\Local\Temp\15025138391400042176\proto12.apk]' didn't terminate successfully (exit code: 1). Check the logs. [com.android.tools.build.bundletool.model.exceptions.InternalExceptionBuilder.build(InternalExceptionBuilder.java:57), com.android.tools.build.bundletool.androidtools.DefaultCommandExecutor.executeImpl(DefaultCommandExecutor.java:57), com.android.tools.build.bundletool.androidtools.DefaultCommandExecutor.execute(DefaultCommandExecutor.java:33), com.android.tools.build.bundletool.androidtools.Aapt2Command$1.convertApkProtoToBinary(Aapt2Command.java:53), com.android.tools.build.bundletool.io.Aapt2ResourceConverter$ResourceConverter.convertAndOptimizeProtoApk(Aapt2ResourceConverter.java:156), com.android.tools.build.bundletool.io.Aapt2ResourceConverter$ResourceConverter.convertResourcesToBinary(Aapt2ResourceConverter.java:116), com.android.tools.build.bundletool.io.Aapt2ResourceConverter.lambda$null$2(Aapt2ResourceConverter.java:96), com.google.common.util.concurrent.TrustedListenableFutureTask$TrustedFutureInterruptibleTask.runInterruptibly(TrustedListenableFutureTask.java:125), com.google.common.util.concurrent.InterruptibleTask.run(InterruptibleTask.java:69), com.google.common.util.concurrent.TrustedListenableFutureTask.run(TrustedListenableFutureTask.java:78), java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136), java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635), java.base/java.lang.Thread.run(Thread.java:833)] ziparchive W 08-02 16:43:51 17928 30012 Unable to open 'C:\Users\username\AppData\Local\Temp\15025138391400042176\proto17.apk': No such file or directory C:\Users\username\AppData\Local\Temp\15025138391400042176\proto17.apk: error: failed opening zip: I/O error. C:\Users\username\AppData\Local\Temp\15025138391400042176\proto17.apk: error: failed to load APK. ziparchive W 08-02 16:43:51 26200 32276 Unable to open 'C:\Users\username\AppData\Local\Temp\15025138391400042176\proto21.apk': No such file or directory C:\Users\username\AppData\Local\Temp\15025138391400042176\proto21.apk: error: failed opening zip: I/O error. C:\Users\username\AppData\Local\Temp\15025138391400042176\proto21.apk: error: failed to load APK. Aug 02, 2022 12:13:51 PM com.google.common.util.concurrent.AggregateFuture log SEVERE: Got more than one input Future failure. Logging failures after the first com.android.tools.build.bundletool.model.exceptions.CommandExecutionException: Command '[C:\Users\username\AppData\Local\Temp\AutoValue_BuildApksCommand18406325469524656845\output\windows\aapt2.exe, convert, --output-format, binary, -o, C:\Users\username\AppData\Local\Temp\15025138391400042176\binary19.apk, C:\Users\username\AppData\Local\Temp\15025138391400042176\proto18.apk]' didn't terminate successfully (exit code: 1). Check the logs. at com.android.tools.build.bundletool.model.exceptions.InternalExceptionBuilder.build(InternalExceptionBuilder.java:57) at com.android.tools.build.bundletool.androidtools.DefaultCommandExecutor.executeImpl(DefaultCommandExecutor.java:57) at com.android.tools.build.bundletool.androidtools.DefaultCommandExecutor.execute(DefaultCommandExecutor.java:33) at com.android.tools.build.bundletool.androidtools.Aapt2Command$1.convertApkProtoToBinary(Aapt2Command.java:53) at com.android.tools.build.bundletool.io.Aapt2ResourceConverter$ResourceConverter.convertAndOptimizeProtoApk(Aapt2ResourceConverter.java:156) at com.android.tools.build.bundletool.io.Aapt2ResourceConverter$ResourceConverter.convertResourcesToBinary(Aapt2ResourceConverter.java:116) at com.android.tools.build.bundletool.io.Aapt2ResourceConverter.lambda$null$2(Aapt2ResourceConverter.java:96) at com.google.common.util.concurrent.TrustedListenableFutureTask$TrustedFutureInterruptibleTask.runInterruptibly(TrustedListenableFutureTask.java:125) at com.google.common.util.concurrent.InterruptibleTask.run(InterruptibleTask.java:69) at com.google.common.util.concurrent.TrustedListenableFutureTask.run(TrustedListenableFutureTask.java:78) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) at java.base/java.lang.Thread.run(Thread.java:833)

تصویر خطای نسخه 1.10

Screenshot (23)

تصویر خطای نسخه 1.11

Screenshot (24)

@Majidahmadi
Copy link
Author

خطا همون خطاست ، تصویر دوم پست قبلی بنده بخاطر پروسس های سیستم همکارم بوده ، خطایی که صادر شده توسط نسخه جدید 0.1.11 مثل اولین خطایی هست که از نسخه قبل از بروزرسانی صادر میشد ، متن خطارو در زیر میتونید مشاهده کنید:

دستور اجرا شده:

java -jar bundlesigner-0.1.11.jar genbin  -v --bundle server_android.aab --bin .  --v2-signing-enabled true --v3-signing-enabled false --ks app_key.jks

خروجی دستور:

C:\Users\username\AppData\Local\Temp\44181137392464369\proto12.apk: error: failed to deserialize resources.pb: unknown type 'macro'.
C:\Users\username\AppData\Local\Temp\44181137392464369\proto12.apk: error: failed to load APK.
Command '[C:\Users\username\AppData\Local\Temp\AutoValue_BuildApksCommand1701816318555858809\output\windows\aapt2.exe, convert, --output-format, binary, -o, C:\Users\username\AppData\Local\Temp\44181137392464369\binary16.apk, C:\Users\username\AppData\Local\Temp\44181137392464369\proto12.apk]' didn't terminate successfully (exit code: 1). Check the logs.
[com.android.tools.build.bundletool.model.exceptions.InternalExceptionBuilder.build(InternalExceptionBuilder.java:57), com.android.tools.build.bundletool.androidtools.DefaultCommandExecutor.executeImpl(DefaultCommandExecutor.java:57), com.android.tools.build.bundletool.androidtools.DefaultCommandExecutor.execute(DefaultCommandExecutor.java:33), com.android.tools.build.bundletool.androidtools.Aapt2Command$1.convertApkProtoToBinary(Aapt2Command.java:53), com.android.tools.build.bundletool.io.Aapt2ResourceConverter$ResourceConverter.convertAndOptimizeProtoApk(Aapt2ResourceConverter.java:156), com.android.tools.build.bundletool.io.Aapt2ResourceConverter$ResourceConverter.convertResourcesToBinary(Aapt2ResourceConverter.java:116), com.android.tools.build.bundletool.io.Aapt2ResourceConverter.lambda$null$2(Aapt2ResourceConverter.java:96), com.google.common.util.concurrent.TrustedListenableFutureTask$TrustedFutureInterruptibleTask.runInterruptibly(TrustedListenableFutureTask.java:125), com.google.common.util.concurrent.InterruptibleTask.run(InterruptibleTask.java:69), com.google.common.util.concurrent.TrustedListenableFutureTask.run(TrustedListenableFutureTask.java:78), java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136), java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635), java.base/java.lang.Thread.run(Thread.java:833)]

@mahboobehad
Copy link
Contributor

لطفا از طریق پشتیبانی بازار فایل برنامه رو بفرستید تا بتونیم بررسی کنیم.

@Majidahmadi
Copy link
Author

فایل با مشخصات تیکت زیر خدمتتان ارسال شد:

تیکت 3085496 - فایل aab در جواب درخواست پشتیبان در Github

@Majidahmadi
Copy link
Author

@mahboobehad

آیا برای رفع این مشکل اقدام جدیدی انجام شده است؟ ما برای کاهش حجم بسته های تولید شده بسیار به این قابلیت شدیدا نیاز داریم .

@maze1377
Copy link
Collaborator

این مشکل یک حالت خاصی هست که در حال بررسی آن هستیم.

زمانی که با اخرین ورژن اندروید استدیو خروجی میگیریم و خودمون تست میکنیم مشکلی وجود ندارد.

@Majidahmadi
Copy link
Author

@maze1377
بسار عالی ، اگر اطلاعاتی از پروژه ما نیاز دارید که به روند رفع مشکل کمک میکنه بفرمایید تا اطلاع بدم.

@mahboobehad
Copy link
Contributor

دوستان ممکنه با نسخه‌ی 0.1.12 فایل رو تولید کنید؟

@Majidahmadi
Copy link
Author

با تشکر فراوان ، بله کاملا مشکل رفع شده و فایل bin به درستی ایجاد شد . موفق باشید.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

4 participants