ساخت فایل (گرفتن خروجی) APK و AAB در اندروید استودیو

ساخت فایل (گرفتن خروجی) APK و AAB در اندروید استودیو
در این مبحث ابتدا به معرفی پکیج فایل‌های APK و AAB پرداخته سپس نحوه گرفتن خروجی و یا به عبارتی ساخت فایل APK و AAB از پروژه اندرویدی در محیط اندروید استودیو به همراه نحوه ساخت امضای برنامه را بررسی خواهیم کرد.

فرمت‌های APK و AAB

به نام خدا. اگر با سیستم عامل اندروید آشنایی مختصری داشته باشید حتما پسوند apk (مخفف Android application package) برایتان آشناست. کاربر چه به صورت مستقیم و چه از طریق اپ استورهای اندرویدی (مانند گوگل پلی، بازار و…) بخواهد اپلیکیشنی را روی دیوایس خود نصب کند، ابتدا می‌بایست فایل نصبی آن را در اختیار داشته باشد. در واقع در حالت نصب از طریق اپ استور نیز ابتدا بسته نصبی با پسوند apk روی دیوایس بارگذاری و سپس عملیات نصب آغاز می شود. بنابراین شما به عنوان توسعه دهنده اندروید باید در مرحله نهایی از پروژه خود خروجی apk گرفته و سپس به مشتری عرضه کنید. در این جلسه از پروژه ای که قبلا ساخته‌ام استفاده می‌کنم.

آشنایی با build.gradle

ابتدا به بررسی build.gradle (Module: app) می پردازم:

فایل build.gradle (Module:app) در پروژه اندرویدی

محتویات build.gradle من به اینصورت است:

apply plugin: 'com.android.application'

android {
    compileSdkVersion 28
    defaultConfig {
        applicationId "ir.android_studio.simpleretrofit"
        minSdkVersion 19
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support:appcompat-v7:28.0.0'
}

اگر به خاطر داشته باشید موقع ساخت پروژه جدید، فقط Minimum SDK را تعیین کردیم. من API 19 را به عنوان Minimum API این پروژه درنظر گرفته بودم که در کد بالا با minSdkVersion مشخص شده. compileSdkVersion و targetSdkVersion هردو در هنگام ساخت پروژه به صورت پیش فرض روی آخرین API ایی که در SDK نصب شده و با سایر ابزار مانند Build Tools سازگار است، تنظیم می‌شود. compileSdkVersion تعیین می‌کند پروژه با چه API ایی کامپایل شود و targetSdkVersion نیز تعیین می کند هدف ما چه نسخه‌ای از اندروید است که معمولا نسخه هدف توسعه دهندگان، آخرین نسخه منتشر شده از اندروید است (مگر در مواقع خاص که نسخه‌ای پایین‌تر از نسخه نهایی مدنظر توسعه دهنده می‌باشد).
versionCode و versionName مربوط به ورژن اپلیکیشن منتشر شده هستند. ما اولین نسخه از اپلیکیشن خود را با ورژن ۱ برای کاربران منتشر می‌کنیم. در آینده هربار که نیاز به بروزرسانی اپ و انتشار مجدد آن باشد، لازم است ورژن را یک واحد بالا ببریم. یعنی در انتشار اولین بروزرسانی اپلیکیشن برای کاربر، باید versionCode 1 را با versionCode 2 جایگزین کرد و به همین ترتیب برای سایر بروزرسانی ها. سیستم عامل اندروید از این طریق تشخیص می دهد بسته نصبی که کاربر قصد نصب آن را دارد و نسخه ای از آن قبلا روی دیوایس نصب شده، ورژن جدیدتر است و آنرا جایگزین نسخه قبل می‌کند.
versionName هم مرتبط با versionCode است با این تفاوت که فقط برای نمایش به کاربر استفاده شده و تاثیری در عملکرد بروزرسانی ندارد. مقدار versionCode از نوع عدد صحیح و versionName از نوع رشته‌ای می‌باشد. یعنی versionCode را قبل از هر انتشار نسخه جدید باید یک واحد عددی اضافه کنیم اما versionName به اختیار توسعه دهنده است. به عنوان مثال ممکن است یک توسعه دهنده برای انتشار پنجمین نسخه اپلیکیشن برای هردو گزینه Code و Name مقدار ۵ را بکار ببرد. اما عموما بیشتر توسعه دهندگان آپدیت های جزئی (که عمدتا رفع اشکالات است) را در واحدهای اعشار به کاربر نشان می دهند و افزایش واحد اصلی را به انتشار آپدیت‌های کلی و بزرگ اختصاص می‌دهند.
به عنوان مثال من نسخه ۱ اپلیکیشن را منتشر کرده‌ام. یک باگ گزارش شده و آن را رفع می‌کنم. Name را از ۱٫۰ به ۱٫۱ تغییر می دهم. به همین ترتیب ۴ مرتبه دیگر نیاز به اصلاحات و انتشار نسخه جدید دارم که هربار اعشار را یک واحد افزایش داده‌ام و نهایتا به ۱٫۵ می‌رسد. حالا بعد از مدتی تصمیم دارم تغییرات گسترده‌ای در اپلیکیشن لحاظ کرده و امکانات جدیدی به آن اضافه کنم. در اینجا ترجیح می‌دهم به جای ۱٫۶، ورژن ۲٫۰ را به کاربر نمایش دهم.
مانند versionCode و versionName سایر مواردی که به بررسی آنها پرداختم نیز قابل تغییر هستند. به عنوان مثال ممکن است بخواهم minSdkVersion را از ۱۹ به ۲۰ تغییر دهم و … که پس از اعمال تغییرات با زدن گزینه Sync، پروژه سینک و تغییرات اعمال می‌شود.

نکته: در نسخه ۳ اندروید استودیو، علاوه بر apk فرمت جدیدی با پسوند aab (مخفف Android App Bundle) معرفی شده که برای انتشار اپلیکیشن در فروشگاه Google Play Store می‌توان بجای فرمت apk از این فرمت استفاده کرد. استفاده از این فرمت برتری‌هایی نسبت به فرمت apk دارد ازجمله کاهش حجم دانلود توسط کاربر. در صورتی که توسعه دهنده خروجی aab را جهت انتشار اپلیکیشن در Play Store آپلود کند، برای هر کاربر و با توجه به مشخصات دیوایس او، تنها منابع و فایل‌های مورد نیاز آن دیوایس دانلود می‌شود در صورتی که اگر توسعه دهنده خروجی apk را آپلود کرده باشد، همه کاربران با هر نوع دیوایس باید تمام محتویات فایل apk را از سرور فروشگاه Play Store دریافت کنند که در نهایت باعث افزایش حجم دانلود می‌شود. تاکید می‌کنم استفاده از این فرمت فقط در Google Play Store امکانپذیر است و برای انتشار اپلیکیشن در سایر فروشگاه‌ها (مانند نمونه های وطنی) باید از فرمت apk استفاده کرد. ضمن اینکه فرمت aab بر خلاف apk قابلیت نصب مستقیم روی دیوایس را ندارد.

ساخت فایل خروجی APK یا AAB

حالا می خواهم از پروژه خروجی apk یا aab بگیرم:

ساخت فایل apk یا aab در اندروید استودیو

برای گرفتن خروجی دو گزینه Build Bundle / APK و Generate Signed Bundle / APK در اختیار داریم.
جهت انتشار اپلیکیشن در اپ استورها، لازم است آنرا امضا (Sign) کنیم و اپ استورها اپلیکیشنی که امضا نشده باشد را نمی‌پذیرند. بنابراین گزینه Build Bundle / APK تنها زمانی کاربرد دارد که بخواهیم اپلیکیشن را روی دیوایس خودمان تست کنیم. لذا برای انتشار اپلیکیشن، خروجی امضا شده می‌گیریم یعنی Generate Signed Bundle / APK:

ساخت فایل امضا شده Bundle یا apk

در این مرحله نوع خروجی را تعیین می‌کنیم که از نوع aab باشد یا apk. من گزینه دوم را انتخاب می‌کنم.
امضایی که می‌سازیم به صورت یک فایل با پسوند jks ذخیره می‌شود. این امضا را می‌توانیم برای سایر اپلیکیشن‌های خود نیز استفاده کنیم. گزینه Create new را انتخاب کرده و در پنجره جدید اطلاعات لازم برای ساخت کلید امضا را وارد می‌کنم:

ساخت امضا برای فایل نرم افزار اندروید

ساخت Signature key در اندروید استودیو

Key store path مربوط به تعیین محل ذخیره شدن فایل امضا است. توسط گزینه “…” سمت راست فیلد، وارد پنجره انتخاب مسیر شده و مسیری دلخواه انتخاب می‌کنم:

ساخت فایل امضا jks در اندروید استودیو

در انتهای پنجره در قسمت File name برای فایل امضای خود یک نام تعیین می‌کنم. سپس یک پسورد تعیین و به جهت تایید دوبار تکرار می کنم. در دفعات بعد که نیاز به استفاده از این امضا داشته باشم این رمز عبور از من پرسیده می‌شود.
قسمت بعد Alias یا نام مستعار است که یک نام دلخواه وارد می کنم و در خط بعد برای نام مستعار هم نیاز به تعریف رمز عبور دارم. گزینه Validity اشاره به زمان معتبر بودن امضا بر حسب سال است که پیش فرض عدد ۲۵ قرار داده شده. در قسمت Certificate اطلاعاتی از جمله نام و نام خانوادگی، ارگان، شهر، استان و کد کشور از ما خواسته شده که تکمیل حداقل یک مورد الزامیست.

مشخصات امضای پروژه اندروید

تذکر: تمام اطلاعات ثبت شده در کلید به همراه فایل امضاء را در جایی امن نگهداری کنید (ترجیحا یک نسخه را در فضای ذخیره سازی جانبی یا فضاهای ابری به عنوان پشتیبان داشته باشید). در انتشار نسخه های جدید اپلیکیشن به این کلید نیاز داریم و در صورت استفاده از امضایی غیر از امضای با مشخصات اولیه، کاربر قادر به بروزرسانی اپلیکیشن نصب شده روی دیوایس خود نخواهد بود. همچنین در صورت مغایرت بین امضای اولیه با امضاهای بعدی، امکان انتشار نسخه جدید اپلیکیشن در اپ استورها وجود نداشته و نسخه جدید توسط اپ استور تایید نمی‌شود مگر آنکه امضاء نسخه جدید با نسخه فعلی یکسان باشد.

با تایید فرم ، امضا ایجاد شده و به پنجره قبل باز می‌گردم:

امضا کردن فایل apk

امضای من با نام mysignature.jks ایجاد شد و برای دفعات بعد یا سایر پروژه‌ها با انتخاب گزینه Choose existing می‌توانیم مجدد از این امضاء استفاده کنیم.
با تیک زدن Remember passwords در دفعات بعد نیاز به وارد کردن مجدد رمزهای عبور نیست (این قابلیت باعث نشود تا رمز عبوری که تعیین کرده اید را فراموش کنید. مجدد تاکید می‌کنم این رمز عبور را حتما در جایی یادداشت کنید).

انتخاب release در قسمت Build Type

نکته: برای سازگاری برنامه با نسخه‌های قدیم و جدید سیستم عامل اندروید و همچنین انتشار آن در فروشگاه Google Play لازم است هردو گزینه V1 (Jar Signature) و V2(Full APK Signature) انتخاب شده باشد.

Destination Folder مربوط به محل ذخیره سازی خروجی apk یا aab است:

انتخاب محل ذخیره فایل apk یا aab در اندروید استودیو

با توجه به اینکه قصد انتشار اپلیکیشن را دارم، در قسمت Build Type گزینه release باید انتخاب شده باشد. در بخش Signature Versions دو گزینه Jar Signature و Full APK Signature وجود دارد. من هردو گزینه را انتخاب کرده، منتظر می مانم تا عمل Generate انجام شود.

ساختن فایل apk در اندروید استودیو

ساخت apk با موفقیت انجام شد:

ساختن فایل apk در اندروید استودیو

حالا اپلیکیشن من آماده انتشار و نصب روی دیوایس کاربران است.
در کنار فایل apk یک فایل دیگر با نام output.json ساخته شده که حاوی اطلاعات فایل نصبی (مانند ورژن و..) است. اگر درباره JSON اطلاعاتی ندارید، این فایل را نادیده بگیرید. جهت آشنایی با فرمت JSON این مطلب را دنبال کنید.

نکته: اگر در هنگام گرفتن خروجی با ارور SSL peer shut down incorrectly مواجه شدید ایراد مربوط به عدم برقراری ارتباط اینترنت یا ارتباط ضعیف است (یا ممکن است نیاز به تغییر IP داشته باشید):
ارور SSL peer shut down incorrectly در اندروید استودیو

گرفتن خروجی aab نیز به همین صورت است با این تفاوت که در مرحله اول گزینه Android App Bundle را انتخاب می‌کنیم:

ساخت خروجی فایل aab در اندروید استودیو

امضای فایل aab در اندروید استودیو

گرفتن خروجی از پروژه اندرویدی با فرمت aab

دانلود فایل این آموزش با فرمت PDF
تعداد صفحات : ۱۴
حجم : ۱ مگابایت
قیمت : رایگان
تاریخ بروزرسانی آموزش : ۹۹/۱۱/۱۲
دانلود رایگان با حجم ۱ مگابایت لینک کمکی
این مطلب چقدر برایتان مفید بود؟ لطفا امتیاز دهید
4.5/5 - (60 امتیاز)
پرسش‌ها و دیدگاه‌های کاربران
دوره آموزش برنامه نویسی اندروید
دوره آموزش برنامه نویسی اندروید

با دریافت این دوره به تمامی آموزش‌های غیر رایگان و رایگان موجود در وب سایت دسترسی دارید که تخفیفی برای آموزش‌های غیر رایگان نیز درنظر گرفته شده. این پکیج به دو صورت دانلودی و ارسال پستی ارائه می‌گردد.
آموزش‌های اندروید استودیو در دو دسته «پایه» و «تکمیلی» منتشر می‌شوند.
آموزش‌های پایه شامل مباحث اصلی و ضروری و آموزش‌های تکمیلی مطالبی است که می‌بایست در کنار مطالب اصلی بررسی شود.
با خرید این دوره، به تمامی آموزش‌های غیر رایگانی که در آینده منتشر می‌شود نیز به صورت رایگان دسترسی خواهید داشت!

یک دیدگاه بنویسید

پرسش‌های زیر تایید و پاسخ داده نـــخواهند شد:
۱: جزء موارد مطرح شده در صفحات مشکلات و پرسش‌های رایج و بروزرسانی‌های محتوای آموزشی باشد
۲: سوال قبلا توسط کاربران در دیدگاه‌ها مطرح و پاسخ داده شده باشد
۳: پرسش خارج از مبحث آموزشی موجود در این صفحه باشد

  • سید فواد حسینی گفت:

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

  • Poorya گفت:

    سلام خسته نباشید.
    cvc-complex-type.2.4.a: Invalid content was found starting with element ‘base-extension’. One of ‘{codename, layoutlib}’ is expected.

    این ارور رو میده ، مشکلش چیه ؟

  • matie گفت:

    سلام خسته نباشید
    Can not extract resource from com.android.aaptcompiler.ParsedResource@7ba4992.
    چطوری میشه این ارور رو برطرف کنم و ممنون.

  • مهدیار فلاح گفت:

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

  • سعید گفت:

    با سلام
    من هنگام ایجاد فایل apk امضادار، هر پسوردی وارد میکنم خطای keytool error: java.io.IOException: keystore password was incorrect رو از من میگیره. درصورتی که بار اول هست که فایل رو میسازم.
    میشه راهنمایی کنید. ممنونم

  • azad گفت:

    شکل تب build در هنگامی پروژه ام رو باز می کنم به هیچ وجه فورمت تب build مشابه تصاویر شما نیست.و به این صورت است که تنها دوگزینه فعال هست.
    analyze APK
    Depoly module to App Engine
    چرا من نمی تونم کد نوشته شده رو به apk تبدیل کنم؟

    • سیدمهدی مطهری گفت:

      پروژتون بیلد نشده بزرگوار. ببینید خطایی که گرفتید (در تب build پایین اندروید استودیو) مربوط به چه قسمتی هست. اگه از روی متن خطا، مسئله رو تشخیص ندادید، صفحه پرسش های رایج رو مطالعه کنید

    • Azadeh گفت:

      با سلام دوباره و سپاس بسیار زیاد از وقتی که اختصاص می دین برای پاسخ.
      Unable to find Gradle tasks to build: این پیغامی هست که در قسمت سمت راست صفحه ظاهر می شه. البته برای اولین بار که پروژه را build کردم، پیغامهای زیر نمایش داده شد:
      Could not find com.android.tools.build:gradle:7.0.3.
      Searched in the following locations:
      – https://dl.google.com/dl/android/maven2/com/android/tools/build/gradle/7.0.3/gradle-7.0.3.pom
      – https://repo.maven.apache.org/maven2/com/android/tools/build/gradle/7.0.3/gradle-7.0.3.pom
      Required by:
      project :
      Add google Maven repository and sync project
      Open File
      لطف می کنید اگر پاسخ بدید .

  • rzg گفت:

    سلام و وقت بخیر من ی برنامە نوشتم وقتی برنامە رو بدون امضا نصب می کنم اجرا میشە اما وقتی امضاش می کنم نصب نمیشە مشکل از کجاست؟

  • ناصر گفت:

    اگر بخواهیم برنامه را در گوگل پلی منتشر کنیم. در فرآیند امضا آیا باید کد کشور و نام شهر را غیر ایران وارد کنیم یا اهمیتی نداره؟

  • amir گفت:

    سلام اندروید استودیو من نسخه ۳٫۶٫۳ هست و گزینه Generate Signed Bundle برای خروجی نداره
    چکار کنم؟
    ممنون میشم جواب بدین

    • سیدمهدی مطهری گفت:

      ببینید چرا پروژتون بیلد نشده و چه اروری گرفتید

      • amir گفت:

        هیچ اروری دریافت نکردم
        و اصلا اون گزینه نیست که بزنم که کار نکنه بگه یه جا اشتباهه
        گزینه باید باشه ولی نیست
        راه دیگه ای نیست؟

        • سیدمهدی مطهری گفت:

          نه مشکل بیلد شدن پروژه ارتباطی به اجرای پروژه نداره. وقتی پروژه رو ایجاد می کنید یا روی پروژه کار می کنید یا کتابخونه ای اضافه می کنید و…، اگه نقصی وجود داشته باشه (مثل دریافت نشدن کتابخانه و…) پروژه بیلد نمیشه و گزینه گرفتن خروجی هم فعال نیست طبیعتا. صفحه پرسش های رایج رو یه بررسی بکنید بیشتر با این مسائل آشنا بشید

  • عباس گفت:

    من یک برنامه نوشتم و تونستم فایل apk رو تولید کنم. خود اندروید استودیو میگه فایل با موفقیت تولید شد
    ولی فایل apk نه روی گوشی و نه روی ایمولاتور نصب نمیشه
    بنظرتون مشکل از کجاست؟

    • سیدمهدی مطهری گفت:

      دلایل مختلفی میتونه داشته باشه. اگه پروژه روی شبیه ساز نسخه اندروید مدنظر اجرا میشه ولی فایل apk روش نصب نمیشه، لینک زیر رو بررسی کنید:
      https://developers.cafebazaar.ir/fa/guidelines/android-introduction/blocked-play-protect

  • عباس گفت:

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

  • وحید گفت:

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

    • سیدمهدی مطهری گفت:

      اگه دوره رو در اختیار دارید چرا داخل سایت بگردید؟ محتوای دوره همین مطالب وب سایت هستش و به ترتیب اولویت لیست شده. به همون ترتیب شروع کنید مباحث رو. تو صفحه معرفی دوره هم میتونید فصل بندی مطالب رو مشاهده کنید

  • جواد گفت:

    سلام استاد.
    من یه تازه وارد هستم.
    یه برنامه کتاب ساده نوشتم حالا وقتی برای تست از طریق adb روی گوشی خودم بیلد و نصبش میکنم به صورت کامل و بدون کوچک ترین اروری بیلد صورت میگیره ولی همین که برنامه نصب میشه به صورت خودکار از برنامه بیرون میاد بدون این که چیزی رو اجرا کنه.
    باید بگم که بار ها از طریق adb برنامه هایی رو نصب کردم و به خوبی اجرا شدن. حداقل api پروژه ۱۶ هستش و گوشی من اندروید ۶ داره.
    تنها وابستگی هایی هم که نصب کردم Recyclerview v7:28.0.0
    و
    Cardview v7:28.0.0
    هست.
    لایه هایی هم که تو اکتیویتی ها قرار داده شدن از همین جنس هستند.
    واقعا نمیدونم چرا رو گوشی اجرا نمیشه.
    حتی رو چند تا گوشی دیگه نصب کردم اونجا اصلا نصب نمیشدن.

  • فاطمه گفت:

    سلام من میخاستم ی برنامه خوش امدگویی ساده طراحی کنم و طبق دذستورات کتاب جلو رفتم…میخام برنامه رو رو گوشی اجرا کنم ولی زمانی ک میخام ب صورت مستقیم روی گوشی اجراش کنم و یا یک فایل apk از بسازم ارور میده.ممنون میشم راهنمایی کنید
    Could not GET ‘https://jcenter.bintray.com/junit/junit/4.12/junit-4.12.pom’. Received status code 403 from server: Forbidden

  • پریا گفت:

    سلام استاد من میخوام لینک دانلود اپلیکیشنمو در سایت خودم قرار بدم ، برای این کار چه نوع خروجی باید بگیرم و اینکه من طبق آموزشتون پیش رفتم و فایل app-release.app بدست آوردم الان اگه بخوام رو گوشی تست کنم باید چیکار کنم؟

  • MrMean گفت:

    سلام خسته نباشید، من از برنامه خروجی میگیرم ولی هنگام نصب روی دیوایس ارور Play Protect دریافت میکنم، راه‌حلی که پیدا کردم اینکه اپلیکیشن رو داخل یه فرمی ثبت کنم تا گوگل مورد بررسی قراربده، در فرم وقتی لینک دانلود برنامه رو وارد میکنم، ایمیلی که برام میفرستم اینه:
    You recently submitted an appeal for an app with Google Play Protect.

    The link you have provided does not lead to an APK file or the file is corrupted. Please submit a new appeal and check that you are providing the link to the correct APK file.

    Thank You,
    Google Play Protect Team
    گفته شده که لینکی که فرستادید یا خراب است، یا فایل مشکل دارد، من برنامه دیگری را با همین روش تست کردم و درست ثبت شد و ایمیل موفقیت آمیز فرستادن، الان نمیدونم مشکل برنامه‌ای که نوشتم چیه که گوگل نمیتونه تشخیص بده برنامه‌رو، لطفا راهنمایی کنید.?❤️

  • وحید گفت:

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

    • سیدمهدی مطهری گفت:

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

  • امیررضا اسدی گفت:

    سلام من هر برنامه ای تو اندروید استودیو ران میکنم به دستگاهی که وصله برنامه باز می‌کنه ولی اون برنامه رو به گوشی دیگه میندازم نصب نمیشه

  • kowsar گفت:

    موقع خروجی apk گرفتن وقتی امضا قبلیمو به برنامه میدم ارور Password verification failed میده در صورتی که درست وارد کردم کسی میدونه مشکل چیه؟

  • محمد گفت:

    سلام خسته نباشید
    برای من گزینهBuild Bundle / APK و Generate Signed Bundle / APK
    وجود نداره مشکل از چی میتونه باشه؟

  • سیدصالح گفت:

    سلام
    توی قسمت مینفست یه برنامه پرمیشن اینترنت رو اضافه کردم
    بعد فقط توی بعضی گوشی ها درست کار میکنه و وب ویو، سایت رو نشون میده،اما توی گوشی با اندروید ۹ و۱۰ تست کردم کار نمیکنه
    اگه میشه راهنمایی کنید

    • سیدمهدی مطهری گفت:

      سلام. برای اینکه به جواب برسید عبارتی مثل
      internet permission doesn’t work in android 9 & 10
      رو گوگل کنید و ببینید در stackoverflow یا سایت دولوپر اندروید یا بقیه منابع چه دلایل و راهکارهایی براش ذکر شده

  • فائزه حدادی گفت:

    سلام ببخشید من برنامم پاک شده ولی فایلapkرو دارم چجوری میتونم بازش کنم؟؟

  • amin گفت:

    سلام ممنون از آموزشهای عالیتون
    ببخشید یه راهنمایی منو میکنید تازه واردم ممنون. الان که apk رو ساختم وقتی اپدیت کردم اپو، امضا همون قبلی و ورژن رو افزایش میدم. حالا چطور برای کاربر پیام میاد که اپ نسخه جدید داره؟ باید کد بزنم تو اپم که نسخه رو پیدا کنه؟ یا خود استورها مثل بازار انجام میدن یا ….
    ممنون میشم راهنماییم کنید

  • شیدا گفت:

    سلام وقتتون بخیر
    من آخرین ورژن SDk و Gradle رو نصب کردم و از برنامه خروجی apk گرفتم ولی تو اندروید ۶ یا ۷ به پایین ارور unfortunately … has stopped رو میده، باید چکار کنم که فایلی که ذخیره میکنم تو اندروید های پایین هم اجرا بشه؟ ممنون میشم اگر راهنماییم کنید.

    • سیدمهدی مطهری گفت:

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

  • یزدخواستی گفت:

    سلام سوال دیگر : فرض کنید از پروژه ام apk گرفتم حالا می خواهم تغییراتی در پروژه انجام بدهم و با نام دیگر طوری apk بگیرم که به عنوان یک app جدید ذخیره شود بطوریکه بعنوان ورژن جدید بحساب نیاید و apk جدید بجای apk قبلی نصب نشود باید چکار کنم؟ تشکر

  • یزدخواستی گفت:

    سلام اخیرا موقعی که می خواهم فایل build.gradle را باز کنم امکانش نیست و پیوسته پیام loading نمایش داده می شود ولی فایل باز نمی شود راهنمائی بفرمائید

  • طالب گفت:

    سلام
    هنگام خروجی گرفتن این خطا میده دلیلش چیه ممنون میشم راهنمایی کنید.
    Could not find aapt2-4.0.0-6051327-windows.jar (com.android.tools.build:aapt2:4.0.0-6051327).

  • مهدی فرهادی گفت:

    سلام اقا مطهری
    لطفا راهنماییم کنید که چطور بخش Build Type رو پیدا کنم.

  • Mostafa گفت:

    سلام استاد تمام مراحل انجام میدم ولی ارور میده

    FAILURE: Build failed with an exception.

    * What went wrong:
    Execution failed for task ‘:app:validateSigningRelease’.
    > Keystore file ‘C:\Users\ASUS\Desktop\zekr.jks’ not found for signing config ‘externalOverride’.

    * Try:
    Run with –stacktrace option to get the stack trace. Run with –info or –debug option to get more log output. Run with –scan to get full insights.

    * Get more help at https://help.gradle.org

    BUILD FAILED in 686ms
    ۲۵ actionable tasks: 1 executed, 24 up-to-date

  • بیکار گفت:

    چرا شیریت برنامه ها رو نمیزاره نصب بشن

  • ایمان گفت:

    باسلام هنگام خروجی گرفتن این ارورو گرفتم:* What went wrong:
    Execution failed for task ‘:app:lintVitalRelease’.
    > Could not resolve all files for configuration ‘:app:lintClassPath’.
    > Could not find lint-checks.jar (com.android.tools.lint:lint-checks:26.6.3).
    Searched in the following locations:
    https://dl.google.com/dl/android/maven2/com/android/tools/lint/lint-checks/26.6.3/lint-checks-26.6.3.jar
    > Could not find lint-api.jar (com.android.tools.lint:lint-api:26.6.3). https://dl.google.com/dl/android/maven2/com/android/tools/external/com-intellij/kotlin-compiler/26.6.3/kotlin-compiler-26.6.3.jar

  • هومن گفت:

    ارور Timeout میده . چرا؟

  • h گفت:

    سلام
    من طبق آموزش پیش رفتم ولی وقتی فایل apk رو در بازار آپلود میکنم پیغام میده(( بسته باید امضا شده باشد )) مشکل از کجاست؟

  • محمد گفت:

    به این میگن یه توضیح واضح و قابل درست

    آفریییییییییییییییییییییییییییییییییین

  • امیرحسین گفت:

    سلام . برنامه ای که خروجی میگیرم روی ورژن های اندروید ده نصب نمیشه اما ورژن های پایین تر مشکلی نداره باید چیکار کنم ؟

    • سیدمهدی مطهری گفت:

      موقع اجرای پروژه روی دیوایس نسخه ۱۰ و بالاتر، Logcat رو بررسی کنید ببینید چه قسمتی سازگاری نداره. یا کدها و متدهایی که استفاده کردید رو بررسی کنید احتمالا یه مورد تو نسخه ۱۰ منقضی (deprecate) شده

  • مرتضی گفت:

    سلام چرا برنامه در گوشی من نصب و اجرا میشه ولی در گوشی دوستم نصب ولی متوقف میشه ؟

  • Mahdiyar گفت:

    بسیار عالی و کاربردی خسته نباشید.
    لطفا نحوه انتشار اپلیکیشن در گوگل پلی و… رو هم راهنمایی بفرمایید.
    باتشکر

  • amir گفت:

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

  • یاس گفت:

    خیلی ممنون عالی بود

  • من گفت:

    سلام
    چه طوری در اندروید استودیو مشخص کنیم که ورژن بالاتر خروجی بدهد / مثلا آلان ۲٫۱ است / یک خروجی مثلا ۲٫۱٫۱ بگیریم (شماره ورژن کد و ورژن نام را بالاتر بگیریم . ممنون

  • empire گفت:

    Could not find lint-checks.jar (com.android.tools.lint:lint-checks:26.5.0).
    Searched in the following locations:
    https://dl.google.com/dl/android/maven2/com/android/tools/lint/lint-checks/26.5.0/lint-checks-26.5.0.jar
    ——————————————————
    این ارور رو میگیرم وقتی میخوام خروجی بگیرم

    • سیدمهدی مطهری گفت:

      فایل build.gradle رو بررسی کنید. در دو بلاک repositories باید هردو گزینه google() و jcenter() وجود داشته باشه. اگه بازم حل نشد ارور رو سرچ کنید ببینید چه دلایل دیگه ای براش ذکر شده