خطا در کامپایل برنامه اندروید – m2repository موجود نیست

یکی از خطاها و مشکلات فراگیر در هنگام کار کردن با زامارین اندروید، هنگامی ست که میخواید پروژه را کامپایل کنید و با خطای زیر مواجه می شوید:

Download failed. Please download https://dl-ssl.google.com/android/repository/android_m2repository_r25.zip and put it to the C:\Users\[Username]\AppData\Local\Xamarin\{SUPPORT LIBRARY NAME}\{VERSION NUMBER} directory.”

این خطا موقعی بوجود می آید که شما به کتابخانه های مرتبط با android support یا google service در پروژه زامارین اندروید یا زامارین فرم ارجاع داده باشید.

اگر به پوشه C:\Users\[Username]\AppData\Local\Xamarin مراجعه کنید، نام تعداد زیادی از کتابخانه های مرتبط با android support و google service را می بینید.

m2repository fixes

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

m2repository fixes

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

m2repositoryfixes3

پوشه content شامل m2repository می باشد.

و پوشه embedded شامل فایل های .aar می باشد.

روش های رفع خطا:

۱- روش خودکار:

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

C:\Users\[Username]\AppData\Local\Xamarin\{SUPPORT LIBRARY NAME}\{VERSION NUMBER}

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

۲- روش دستی ۱: 

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

آدرس فایل m2repository شبیه زیر می باشد. البته بسته به نگارشی که شما ارجاع دادید، عدد آخر که نشان دهنده نگارش هست متفاوت می باشد و باید نگارش مناسب را دانلود کنید.

https://dl-ssl.google.com/android/repository/android_m2repository_r25.zip

مراحل به صورت زیر است.

– ابتدا فایل را دانلود کنید.

– سپس از حالت فشرده خارج کنید.

– محتویات فایلی که از حالت فشرده خارج کردید که با نام m2repository می باشد را در پوشه content مرتبط با نام کتابخانه و نگارش مرتبط قرار دهید.

– سپس محتویات پوشه com\android\support را در پوشه embedded مربوطه قرار دهید.

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

۳- روش دستی ۲ ( بهترین و ساده ترین روش)

مراحل روش ۲ کمی زمانبر می باشد و باید برای هر نگارش و هر کتابخانه مجزا انجام شود، و احتمال اشتباه دستی در حین کار هم وجود دارد. با استفاده از روشی که در ادامه گفته می شود، هم از عملیات کاسته می شود و هم عملیات روش ۲ بصورت خودکار توسط زامارین تقریبا انجام می شود.

این روش ترکیبی از روش اول و دوم می باشد.

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

مراحل بصورت زیر است:

– فایل m2repository را از آدرس خواسته شده دانلود کنید.

– به پوشه C:\Users\[Username]\AppData\Local\Xamarin\zip مراجعه کنید و با فایلی با نام {MD5HASH}.zip جایگزین کنید. نام فایل در واقع نام هش شده فایلی که دانلود کردیم می باشد که قالبی مانند f1c4934521c9551b14741544a9b9ece3 دارد. میتوانید از ابزارهای انلاین هم برای فهمیدن هش شده نام فایلی که باید جایگزین کنید استفاده کنید. البته با توجه به حجم فایل هم میتوان حدس زد که کدام فایل مورد نظر می باشد. فایل موجود در فایل zip ، قبل از جایگزین شدن حجمی تقریبا معادل ۲ کیلوبایت دارد. در واقع فایل خالی است و همان فایلی است که قرار بوده توسط زامارین دانلود شود و به علت تحریم نتوانسته عملیات را تکمیل کنید.

– در ویژوال استودیو بیلد را بزنید. زامارین فایل را اکسترکت کرده و در جای مناسب قرار میدهد

– اگر در استفاده از این روش به نکته ای برخوردید، برای استفاده سایر دوستان در قسمت نظرات بنویسید

** با توجه به تحریم بودن و بالا بودن حجم فایل هایrepository ، در بسته محصولات سایت قرار داده شد.

لینک محصول

20 دیدگاه برای “خطا در کامپایل برنامه اندروید – m2repository موجود نیست”

    1. پوشه content و embedded اگر از قبل موجود هست پاک کنید تا مجدد ساخته بشوند و پر بشند.
      زامارین اگر پوشه ها موجود باشند، حین اکسترکت و عملیات ، فرض رو بر این میگیره که اون ها داخلشون محتوا داره، در حالی که خالی هستند.
      بنابراین پوشه های خالی رو پاک کنید و سپس بیلد کنید

  1. مگه این فایل از طریق sdk manager نصب نمیشه ؟ آدرس android-sdk هم تو زامارین تنظیم قابل تنظیم هست.
    یه نکته‌ی دیگه حتما باید رویژن ۲۵ باشه ؟

  2. با سلام

    من یه مشکلی دارم برنامم تو شبیه ساز به درستی کار میکنه ولی زمانی فایل APK رو روی گوشی نصب میکنم زمانی که برنامه رو باز میکنم خطا میده و میپره بیرون
    به نظرتون مشکل از چی میتونه باشه

  3. سلام
    ببخشید زامارین گالری تصاویر هم داره؟ من میخوام پشت زمینه برنامه ام یه گالری تصاویر بذارم که Fullscreen باشه و اتوماتیک استارت بشه. آیا امکانش هست؟

    ببخشید شما فیلم های آموزش فارسی هم دارید برای زامارین؟

  4. سلام من ویژوال ۲۰۱۲ دارم با مونو ۴٫۱۰ این کتابخانه و سرویس های گوگل را با همین روش اضافه کردم ولی تو برنامه ساختن نمیشناسه اکسپشن میده. مشکل از چیه از ویژواله یا مونو یا آپدیت نبودن اینها؟ لطفا جواب بدین

  5. سلام.
    من به تازگی دارم با Xamarin کار میکنم . افزونه xamarin for visual studio 4.0.95 رو نصب کردم و برنامه ای که تولید کردم ، نیاز به دسترسی جی پی اس داره. مشکلم اینه که در اندروید ۶ برنهمه در ابتدا permission رو نمیپرسه، وقتی نصب میشه و اوالین بار که برنامه رو بالا میارم هم باز هم دسترسی جی پی اس رو سوال نمیکنه. میخوایتم بدونم تو اندروید ۶ باید کار خاصی انجام بدم؟
    ممنون میشم اگر پاسخ بدید

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *