مجید آرتا 5,874 ارسال شده در 26 دی، ۱۳۹۶ اشتراک گذاری ارسال شده در 26 دی، ۱۳۹۶ سلام به کاربرای خوبِ انسرسنتر امیدوارم دلتون توی این روزای سرد زمستانی گرم باشه. با قابلیت MultiDex در بیسیک4اندروید در خدمتتون هستیم. اگر فایل apk رو با نرم افزار های فشرده ساز مثل وینرار یا 7z اکسترکت کنید یکسری فایل رو میتونید مشاهده کنید.یکی از فایل ها که به اسم calsses.dex هستش توی این فایل های اسکترکت شده موجوده. این فایل تمامی کدهای نوشته شده به زبان جاوا رو در خودش قرار میده.یعنی به وسیله این فایل می تونیم تمامی کدهای یک اپ اندروید رو در بیاریم. خب بگذریم، شاید شما بعضی از اپ هار و اکسترکت کرده باشید و دیده باشین که دو تا فایل classes.dex وجود داره، خب جای تعجبی نداره و قطعا برنامه نویس/برنامه نویسان این اپ از مرز محدوده ی کد و توابع گذر کردن و مجبور شدن قابلیت multidex رو فعال کنن. چ زمانی پس از این قابلیت استفاده میشه ؟ بله درسته زمانیکه ما کدها و توابعی رو که نوشتیم بیش از حد مجاز یک فایل dex باشه زمان کامپایل با این خطاها مواجه میشیم : - Too many field references - Too many method references یعنی شما نیاز دارید تا قابلیت MultiDex رو فعال کنید. برای فعال کردن این قابلیت، توی اکتیویتی Main این کد رو قرار بدید » #MultiDex: True خب طبق عرایض ارل نکته ای رو هم باید به عرضتون برسونم.این نکته مربوط میشه به دوستانی که از بیسیک نسخه ی 6.80 استفاده می کنن. میرید به محل نصب بیسیکتون، فایل Dexer.jar رو پیدا که کردید، میایید این رو دانلود می کنید و جایگزینش می کنید » http://www.b4x.com/android/files/Dexer.jar حواستون باشه، قبل اینکه فایل جدید رو کپی کنید ابتدا مطمئن باشید که بیسیکتون اجرا نباشه و اگه اجرا بود حتما برنامه رو ببندین. خب کل کاری که باید انجام میداید همینی بود که بهتون عرض کردم. به امید پروژه های مالتی دکسی همه بچه های انسرسنتری لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
salmana 174 ارسال شده در 30 دی، ۱۳۹۶ اشتراک گذاری ارسال شده در 30 دی، ۱۳۹۶ خسته نباشید جناب آرتا یه ذره گنگ هدف رو گفتین فکر کنم. چون ابتدا بحثت یجور روی امنیت بود بعد یهو توی چن حرف میگین " بیش از حد مجاز یک فایل dex به نظرم باید بیشتر روی این گارد میگرفتین. حالا من توضیحات تکمیلی بدم با اجازتون گاهی اوقات برنامه ما سنگین میشه از لحاظ رفرنس( مثلا از کلی کتابخونه و توابع خاصی استفاده میکنیم که منجر میشه رفرنس از حد مجازمون بیشتر بشه و با خطایی که آقای ارتا گفتن هنگام کامپایل مواجه بشیم, خطای کاملش تو کادر پایین گزاشتم ) B4A version: 7.01 Parsing code. (0.34s) Running custom action. (0.24s) Compiling code. (0.73s) ObfuscatorMap.txt file created in Objects folder. Compiling layouts code. (0.15s) Organizing libraries. (2.09s) Generating R file. (1.92s) Compiling generated Java code. (12.21s) Convert byte code - optimized dex. Error trouble writing output: Too many field references: 65730; max is 65536. You may try using —multi-dex option. توی تجربیات من فهمیدم که بیشترین رفرنس رو کتابخونه متریال دراور داره. نکته : خلاصه اگر رفرنسهاتون زیاد شد دیگه نمیتونین کامپایل کنین و راه حل آن این هست که(همانطور که جناب آرتا فرمودن:) از بیسیک 6.8 به بالا استفاده کنین و بعدش توی اکتیویتی مین اینو بزارین: #MultiDex: True حالا پروژه شما کامپایل میشود ولی یه نکته مهم اینجاست که اگر کد مولتی دکس به کار بردین دیگه برنامه شما روی اندروید پایین فورس کلوز میده( فکر کنم از 5 به بالا جواب میده) این خیلی بده چون دیگه روی خیلی گوشیها جواب نمیده و هنوز نسخه 4.4 زیاده توی بازار. برای کیف نرم افزار من این مشکل مولتی دکس پیش اومد و دیگه رفتم با شناسایی کتابخونه ها و با حذفشون و جایگزین با کتابخونه ساده تر اومدم تعداد رفرنس ها رو کم کردم مثلا با حذف کتابخونه متریال دراور و جایگزین با کتابخونه اسلاید پنل این مشکل رو حل کردم ( البته فقط با این یکی حل نشد که.خخخخ. 5 تایی کتابخونه سنگین داشتم که با حذف و جایگزینش تونستم رفرنسهام رو کم کنم و نیاز به مولتی دکس نداشته باشم) حد مجاز رفرنس : 65536 می باشد تایپک مولتی دکس: https://www.b4x.com/android/forum/threads/multidex-solves-the-too-many-methods-error.76431/#content لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
محمدرضا شاهپیری 5,585 ارسال شده در 25 بهمن، ۱۳۹۶ اشتراک گذاری ارسال شده در 25 بهمن، ۱۳۹۶ در در 1396/10/30, 05:39:29، salmana گفته است : حالا پروژه شما کامپایل میشود ولی یه نکته مهم اینجاست که اگر کد مولتی دکس به کار بردین دیگه برنامه شما روی اندروید پایین فورس کلوز میده( فکر کنم از 5 به بالا جواب میده) این عزیز. شما بهتره تاپیک مرجع رو با دقت بیشتری بخونید. جمله زیر میگه که این قابلیت با اندروید 2 مشکل داره نه اندروید 5. There are issues with MultiDex and Android 2.x devices لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
salmana 174 ارسال شده در 26 بهمن، ۱۳۹۶ اشتراک گذاری ارسال شده در 26 بهمن، ۱۳۹۶ در در 1396/11/25, 15:49:17، محمدرضا شاهپیری گفته است : عزیز. شما بهتره تاپیک مرجع رو با دقت بیشتری بخونید. جمله زیر میگه که این قابلیت با اندروید 2 مشکل داره نه اندروید 5. There are issues with MultiDex and Android 2.x devices من خیلی وقت پیش که مراجعه کرده بودم اون موقع ها ارل گفته بود که از اندروید 5 به بالا ساپورت میکنه و روی کمتر از 5 خطا میده و من هم تست کرده بودم و فقط 5 به بالا جواب میداد جدیدا اومده فایل Dexer.jar را به روز کرده تا روی اندروید 4 هم مشکل حل کنه( در متن پایین گفته) . البته من تست کردم روی اندروید 4 و جواب نداد.خخخخ Developers who use this version should replace the existing Dexer.jar with this one: www.b4x.com/android/files/Dexer.jar Close the IDE and copy the updated Dexer.jar to the installation folder. It fixes an issue with Android 4 and the MultiDex feature. اگر دقت کنی ارل پستش رو ادیت کرده و edit هم نوشته شده. نکته :این که بقول ارل از این مولتی دکس فقط در مورد (خطای رفرنس زیاد) موقع کامپایل استفاده بشه. در پایین گفته اگر نیازی ندارین ازش استفاده نکنین چون مولتی دکس هیچ منفعتی نداره بلکه ضرر کامپایل کندتر هم به همراه داره - Don't use this feature if not needed. Compilation will be a bit slower and there are no benefits. متن پایین هم میگه روی اندروید 4 جالب نیست(چیزی که تونستم ازش بفهمم فکر کنم این بودش) - Test your APK on an Android 4.x device. There is no native support for MultiDex on Android 4.x so the process is more fragile. لینک ارسال به اشتراک گذاری در سایت های دیگر تنظیمات بیشتر اشتراک گذاری ...
ارسالهای توصیه شده
بایگانی شده
این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.