برادر من خوب چرا از اول نمیگی، من فکر کردم کلا نمیتونی اجرا بگیری، ببین اون ارور برای sdk manager چیز مهمی نیست، میخواد خودش به صورت اتوماتیک آپدیت کنه که اصلا نیازی نیست. شما هر آپدیتی خواستی بکنی روی sdk یاچیزی نصب کنی براش برو به مسیر زیر:
/usr/lib/android-sdk/cmdline-tools/latest/bin
این دستور بزن قشنگ گفته چطوری با همون فایل sdkmanager میتونی این کارها رو بکنی:
/usr/lib/android-sdk/cmdline-tools/latest/bin
مثلا اگه میبینی ارور بهت میده برنامه و میخواد که build-tools نسخه 28.0.3 رو نصب کنی، میری توی مسیری که اول بهت گفتم و دستور زیر رو میزنی:
./sdkmanager install build-tools;28.0.3
میتونی بقیه چیزها رم سرچ کنی.
بهتر نیست که مسیر بالا رو به PATH کاربر اضافه تا هر بار لازم نباشه رفت به اون دایرکتوری یا مسیر کامل فایل رو داد؟ اینجوری میتونید مثل بقیه دستورات، sdkmanager و همینطور بقیه فایلهایی اجرایی cmdline-tools رو اجرا کنید.
با اضافه کردن این bashrc. میشه اینکار رو کرد.
PATH="$ANDROID_HOME/cmdline-tools/latest/bin:$PATH"
اگه از یه پوسته دیگه استفاده میکنید، متن بالا رو به فایل مربوط به اون اضافه کنید.
به نطرم بهتر بود sdkmanager و اینها رو توی هوم خودتون نصب میکردید و بعد متغییرهای محیطی رو تغییر میداد تا به اون فایلها اشاره کنه. اینجوری به دایرکتوریهایی که مدیربسته کنترل میکنه هم کاری نداشتید. ولی حالا که کار میکنه، نمیخواهد دستش بزنید.
./sdkmanager install build-tools;28.0.3
دوتا "" جا انداختید. باید اینجوری باشه
./sdkmanager install "build-tools;28.0.3"
یا اینجوری
./sdkmanager install 'build-tools;28.0.3'
اونی که اول نوشتید باعث میشه bash دستور رو اینجوری پردازش کنه:
اول این اجرا بشه:
./sdkmanager install build-tools
و بعد از به پایان رسیدنش، این یکی
28.0.3
اولی احتمالا خطا میده که چنین چیزی برای نصب وجود نداره، دومی هم خطا میده چون چنین دستوری پیدا نمیشه.