ارر appcompat

سوال

سلام دوستان
خداقوت
من طبق برنامه آموزشی آقای مهدی کفشگر برای ایجاد منوی متریال اقدام کردم اما موقع ران گرفتن از برنامه این ارر رو میده که متوجه نمیشمک مشکل چیه

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

ممنون میشم کمکم کنید

 

 

در حال بررسی 0
, ۱۳۹۹/۵/۳۱ ۲۰:۴۹:۵۸ 6 پاسخ کاربر 0

پاسخ ها ( 6 )

    1
    ۱۳۹۹/۶/۱ ۱۰:۱۲:۰۶
    این پاسخ ویرایش شد.

    سلام

    کتابخونه هاتون با هم تداخل دارن.

    از چه کتابخونه هایی استفاده میکنید؟

     

    البته یه احتمال هم داره که ریسورس ها رو دستی هم اضافه کرده باشید که این با مشکل بالا روبرو میشه.

    چون AppCompat ورژن جدید، با اندروید استودیو نوشته شده، از فایل aar استفاده میکنه و ریسورس ها رو تو خودش داره و دیگه لازم نیست دستی ریسور ها رو اضاف کنید.

    1
    ۱۳۹۹/۶/۱ ۱۰:۳۲:۵۰

    سلام.

    ببین میگه دستوراتی که توی خط های مشخص شده هستند قبلا اضافه شدند و تکرارین

    مثلا

      2
      ۱۳۹۹/۶/۱ ۱۱:۲۷:۲۹
      این پاسخ ویرایش شد.

      همونطور که میدونید، این مشکل به این دلیل پیش میاد که یا ریسورس ها، دو بار اضافه شده باشن(مثلا یه بار با فایل aar اضافه شده باشن و ما هم بیایم اون رو از طریق AdditionalRes اضاف کنیم) و یا اینکه کتابخونه ها با هم تداخل داشته باشن:

      موقع رپ کردن کتابخونه ها، از یه Annotation که مربوط به پکیج AnywereSoftWhere.b4a.BA هست به نام Depends On استفاده میشه که مشخص میکنه این کتابخونه، از چه کتابخونه های دیگه ای باید استفاده کنه، تا موقع کامپایل مشکلی پیش نیاد.

      حالا اگر دو تا کتابخونه همزمان با هم داخل DependsOn از اپ کامپت استفاده کنن،

      یا

      یک کتابخونه در DependsOn از اپ کامپت استفاده کرده باشه و ما هم خودمون بیایم تیک اپ کامپت رو بزنیم این مشکل بوجود میاد.

      چون با هر DependsOn، یه بار اون کتابخونه اضافه میشه و اگر ما هم بیایم اضافش کنیم، انگار دوبار اضاف شده و به مشکل میخوره.

       

      حالا این چندتا راه حل داره:

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

       

      دوم اینکه میشه اون dependsOn رو از فایل xml کتابخونه پاک کرد تا مشکل_برای این پروژه_ حل شه.

       

      راه سوم هم اینکه اگر با AdditionalRes ریسورس ها رو اضافه کردین، اون رو پاک کنید.

      موفق باشید

    3
    ۱۳۹۹/۶/۱ ۱۱:۳۶:۵۷

    آقا حامد؛ شما الان دارید از AndroidSupport استفاده میکنید. اینطوری ممکنه در آینده ای نه چندان دور(که اکثر کتابخونه ها اومدن رو Androidx، به مشکل برمیخورید) گوگل هم دیگه از AndroidSupport پشتیبانی نمیکنه و آپدیت هاشو با Androidx میده بیرون. پیشنهاد میکنم قبل از اینکه به مشکل بخورید، به Androidx مهاجرت کنید.

    برای اینکار، مراحل زیر رو انجام بدید:

    ۱- آخرین نسخه SDK و ریسورس هاشو رو از لینک زیر دانلود کنید:

    https://www.b4x.com/b4a.html

    ۲- بعد از آپدیت، داخل بیسیک از منوی تولز، وارد SDKManager بشید و تمام موارد توصیه شده رو دانلود کنید.

    • بعد از نسخه ۹.۳ یه ابزار به بیسیک اضاف شده به اسنم Jetifier که میاد کتابخونه های قدیمی که رو AndroidSupport هستن رو به Androidx تبدیل میکنه.

    ۳- برای اجرای این ابزار، از طریق منوی تولز، Jetifier رو باز کنید و روی jetify کلیک کنید.

    همین

     

    از نسخه ۹.۳ به بعد بیسیک، باید از پکیج های androidx استفاده شه:

    0
    ۱۳۹۹/۶/۱ ۱۳:۱۹:۵۵

    توی آموزش کتابخونه appcompat‌رو فعال نمی کنه اما سه تا پوشه کپی میکنه توی برنامه
    منم همونارو کپی کردم
    اما دو کتابخونه MSMaterialDrawer و phone‌رو فعال میکنه
    قبل از کد نویسی هم این چند خطو به برنامه اضافه کردم طبق آموزش

    #AdditionalRes: ..\appcompat\res, android.support.v7.appcompat
    #AdditionalRes: ..\md-app\res
    #AdditionalRes: ..\md-lib\res

     

     

      2
      ۱۳۹۹/۶/۱ ۱۴:۲۲:۵۹

      الان شما دارید از AndroidSupport استفاده میکنید. گوگل دیگه ازش پشتیبانی نمیکنه و آپدیت هاشو رو Androidx میده بیرون.

       

      بهترین کار اینه که تا به مشکل برنخوردی، به Androidx مهاجرت کنید.

      کافیه مراحل زیر رو انجام بدید:

       

      ۱- آخرین نسخه SDK و ریسورس هاشو رو از لینک زیر دانلود کنید:

      https://www.b4x.com/b4a.html

      ۲- بعد از آپدیت، داخل بیسیک از منوی تولز، وارد SDKManager بشید و تمام موارد توصیه شده رو دانلود کنید.

       

      • از نسخه ۹.۳ به بعد بیسیک، یه ابزار اومده به اسم Jetifier، که کتابخونه های قدیمی رو به AndroidX تبدیل میکنه.

      ۳- برای اجرای این، از طریق منوی تولز، Jetifier رو باز کنید و روی jetify کلیک کنید.

      موقع کامپایل، باید بجای (Android Support Library) ، متن (AndroidX SDK) باشه.

       

      برای کار با MsMaterialDrawer، کافیه ریسورس های خودشو بهش بدین و تیک AppCompat هم بزنید. (البته نسخه ۴ اپ کامپت)

      همین

        0
        ۱۳۹۹/۶/۳ ۱۲:۱۹:۵۸

        سلام داداش
        خداقوت
        من بیسیک ۱۰ با اس دی کای مخصوصشو نصب کردم، شبیه سازمم به لیپروید تغییر دادم
        برنامه اجرا شد اما به محض ورود به اپ این ارر و داد و پرید بیرون
        ممنون میشم ایراد اینم بهم بگید
        ببخشید حسابی زحمت دادم

         

    1
    ۱۳۹۹/۶/۳ ۱:۳۳:۲۴

    سلام علی اقا

    ممنونم از محبت و پیگیریتون
    انشالله به زودی انجام میدم و اگر مشکلی بود مزاحمتون میشم
    خدا خیرتون بده

    1
    ۱۳۹۹/۶/۳ ۱۲:۵۵:۵۴

    این میتونه دو تا دلیل داشته باشه

    اول اینکه کتابخونه هاتون درست jetify نشده. سعی کنید دوباره اونا رو jetify کنید.

    این نکته رو هم داشته باشید که jetifier، فقط Additional Libraries رو jetify میکنه و این یعنی اگر شما کتابخونه هاتون رو تو پوشه Libraries در محل نصب بیسیک ریخته باشید، اونا jetify نمیشن و همین ارور رو رو دریافت میکنید.

    اگر اینطوریه، حتما اون کتابخونه هایی که نو Internal Libraries ریختین رو پاک کنید، و تو Additional Libraries بریزید. چون Internal Libraris، بر Additional Libraries، اولویت دارن؛ یعنی اگر کتابخونه ای در هر دو پوشه Libraries باشن، بیسیک میاد از  اونی استفاده میکنه که تو Internal هست.

     

    دلیل دوم، مشکل کتابخونه MsMaterialDrawer هست که بنده قبلا ریسورس هاش رو ویرایش کرده بودم:

    لینک دانلود:

    https://answercenter.ir/applications/core/interface/file/attachment.php?id=6495

     

    سؤالی بود درخدمتم

ارسال یک پاسخ