خطاهای ممکن
در این بخش خطاهایی که ممکناست در مراحل مختلف راهاندازی پوشه در فلاتر با آنها مواجه شوید به همراه راهحل ذکر شدهاند.
در صورتی که مورد شما خطا (Error) نیست، ممکن است در بخش سوالات ذکر شده باشد.
خطای مورد نظر شما در لیست نیست؟ در گیتهاب به دنبال آن بروید و در صورت نیافتن در آنجا مورد جدیدی مطرح کنید.
خطاهای حین نصب و راهاندازی
Error -32601 received from application: Method not found
این مورد زمانی رخ میدهد که متد کالبک ست نشده باشد و یا مشکلی در گرفتن متد باشد.
در صورتی که متد وجود دارد و رویدادها در بکگراند دریافت میشوند میتوانید از این خطا چشمپوشی کنید.
Failed to resolve co.pushe.plus:base
پوشه از طریق Jcenter
به پروژهی اندروید اضافهمیشود (همینطور لایبرریهایی دیگری که پوشه از آنها استفادهمیکند). با توجه به اینکه این سرویس در کشور ما مورد تحریم است، بایستی با استفاده از ابزار گذراز تحریم این مورد را رفعکنید. به طور کلی دلایل میتواند این موارد باشد:
نبود اینترنت
عدماستفاده از ابزار گذر از تحریم: باید از ابزاری مثل شکن و یا ... استفادهکنید.
درصورتی که از اندروید استودیو یا اینتلیجی استفاده میکنید، استفاده از گریدل در حالت Offline mode را غیرفعال کنید. برای دانلود سرور باید گریدل در حالت
offline mode
نباشد.برای حل این مورد بایستی تیک گزینه را از تنظیمات بردارید:
Failed to resolve Core
در صورتی که تمام موارد مورد قبل درست هستند اما باز هم مشکلی وجود دارد، ممکن است کش گریدل به موردی برخورده باشد و مشکلی داشتهباشد. برای حل این مورد کش گریدل را میتوانید دوباره بارگیری کنید:
- Android studio را ببندید
- از آدرس زیر فولدر
caches
را حذف کنید:- ویندوز:
C:\Users\YOUR_USER\.gradle\caches
- لینوکس:
/home/user/you/.gradle/caches
- ویندوز:
- برنامه را اجرا کرده و مجددا پروژه را
Sync
کنید.
Version conflict (خطای نسخههای مختلف یک لایبرری)
در صورتی که یکی از کتابخانههایی که شما یا یکی دیگر از کتابخانهها اضافهکرده، با کتابخانههای مورد نیاز پوشه یکی باشد و نسخههای متفاوتی داشتهباشند، ممکن است گریدل نتواند این مورد را مدیریت کنید و پروسه به خطا منجر شود.
کتابخانهای که این مورد را دارد (یکسان با نسخههای متفاوت اضافهشده است)، را خودتان دستی به
dependencies
اضافهکنید و نسخهی مورد نظر خود را (معمولا نسخهی نهایی) قرار دهید.با استفاده از کد زیر گریدل را مجبور به استفاده از یک نسخهی خاصی از آن کتابخانه کنید (کد را بالای بلوک
dependencies
در فایلbuild.gradle
ماژول اپ قرار دهید.)
// File: build.gradle (app:module)
configurations.all {
resolutionStrategy {
eachDependency { DependencyResolveDetails details ->
def libraryGroup = "{artifact}"
def forceVersion = "{version}"
if (details.requested.group == libraryGroup) {
details.useVersion forceVersion
}
}
}
}
// dependencies {
// ...
بجای {artifact}
پکیج کتابخانه و بجای {version}
نسخهای که مد نظر است را قرار دهید.