آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

عملکرد نادرست برخی قسمت های پروژه در نسخه Release

مسعود فرمانی  9 سال پیش  9 سال پیش
0 0

پروژه در حالت debug کاملا درست کار میکنه ولی بعد اینکه signed_APK ساختم برخی قسمت هاش عملکرد درستی نداره مثلا یه سری فرگمنت ها محتوا(view) ندارند یا بعضی view ها توی اکتیویتی GONE هستند...

لطفا بفرمایید دلیل این موضوع و راه حلش چیه؟

خیلی ممنون

0 0
پروژه تون رو obfuscate کردید ؟؟؟ اگر این کار رو کردید و احتمالا از لایبری های تو برنامه استفاده شده که اگه اشتباه نکنم باید داخل فایل proguard اون لایبری رو از حالت obfuscate خارج کنید (9 سال پیش)
 برای این سوال 1 پاسخ وجود دارد. مشاهده پاسخ صحیح
پاسخ به سوال 
مسعود فرمانی  9 سال پیش
+1 0

 پاسخ صحیح

من در برنامم از فرگمنت هایی در فرگمنت هایی استفاده کردم! در یکسری جاها برنامه تصمیماتشو بر اساس رشته متنی نام کلاس که خودم مقدار داده بودم ( نه از طریق getClass.getSimpleName) می گرفت و همونطور که میدونید و من نمیدونستم :D کلاس های برنامه در صورت استفاده از proGuard و obfuscate کردن علاوه بر اینکه کوتاه میشن "shrink" نامشون هم تغییر میکنه "rename" .به خاطر همین موضوع دیگه نام هایی که بین دابل کوتیشن گذاشته بودم valid نبودن و...راه حل اینکه از روش بسیار باحالِ استفاده از متد استاتیک newInstance برای ارسال پارمترهایی به فرگمنت استفاده کردم و تصمیم گیری بر اساس نام کلاس رو تغییر دادم و در نهایت درست شد :)) علاوه بر اینکه درست شد!بعضی از کلاس های فرگمنت هم در هم ادغام شدن و کدهامم کمتر شد..بازم :)))

پ.ن:برای آشنایی با روش newInstance گوگلش کنید :))

0 0
دقیق تر میگی چیکار باید کرد؟ (9 سال پیش)
+1 0
@احمد شرمنده بابت جوابِ با تاخیر...دقیق تر و ساده تر میشه اینجوری گفت که بعضی قسمت های پروژه از نام دقیق کلاسها مثلا "FragmentOne" برای تصمیم گیری استفاده میشد (بازم مثلا if(name == "FragmentOne") حالا این فرگمنت وان ، مثلا اسم یکی از کلاس های برنامه من بوده که در اثر obfuscate کردن ، دیگه اسمش فرگمنت وان نیست و عملا اون شرط if یجور دیگه نتیجه میشه و ... این بود که از روش های دیگه ای واسه تشخیص فرگمنت های در runTime استفاده کردم (مثلا اومدم واسشون آی دی ساختم و زمان ساخت خودِ فرگمنت آی دی رو بهش دادم و از اون به بعد با همون آی دی فهمیدم که مثلا این فرگمنت نمونه ای از کلاس فلان فرگمنته و ... (9 سال پیش)

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .