एपीके फ़ाइल डिस्क पर मौजूद नहीं है


224

जब मैं एंड्रॉइड स्टूडियो पर डिबग एप्लिकेशन की कोशिश कर रहा हूं तो यह लॉग आउटपुट देता है:

एपीके फ़ाइल /User/MyApplicationName/app/build/outputs/apk/app-debug.apk डिस्क पर मौजूद नहीं है।

मैंने एंड्रॉइड स्टूडियो को फिर से शुरू किया, लेकिन मैं इस समस्या को हल नहीं कर सकता। मैं इसे कैसे सुलझाऊं ? धन्यवाद


9
मैं इसे कैसे सुलझाऊं ? एक संकलन संकलित करें
टिम

1
@TimCastelijns मैं वास्तव में आश्चर्यचकित हूं कि अगर एंड्रॉइड स्टूडियो डिबग एप्लिकेशन में डिबग एपीके टास्क को शामिल करने के लिए पर्याप्त बुद्धिमान नहीं है। इसके लिए ग्रेडेड बनाया जाना चाहिए।
ट्रिलियनियन

1
@Trilarion डिफ़ॉल्ट रूप से एक ग्रेड के डिबगिंग को निष्पादित करता है जो डिबग एपीके को संकलित करता है। यहां कुछ गलत लगता है, जिसके लिए मैनुअल संकलन की आवश्यकता होती है
टिम

2
ग्रैडल मेक-अवेयर को जोड़ना मेरे लिए इस मुद्दे को तय करता है। stackoverflow.com/a/25871525/1712417
आईमेसोल

2
"Gradle मेक-वाकिफ" जोड़ने के लिए प्रयास करें stackoverflow.com/questions/18256177/...
एंडी चेंग

जवाबों:


463

त्रुटि को हल करने के लिए इस विकल्प पर क्लिक करें:

रन: व्यू> टूल विंडोज> ग्रेडल> [प्रोजेक्ट]> टास्क> बिल्ड> बिल्ड


6
आपके प्रोजेक्ट निर्देशिका नाम के विशेष वर्ण भी इस त्रुटि को फेंक देंगे।
एनपी

50
यह मेरे लिए बिल्कुल काम नहीं किया। मैं उन उत्तरों की सलाह दूंगा जो यह बताएंगे कि पाठक को केवल यह बताने के बजाय कि उन्हें काम क्यों करना है, ताकि वे बाद में उन त्रुटियों को समझ सकें / उनसे बच सकें / हल कर सकें।
person27

3
क्या आप बताएंगे कि यह वास्तव में क्या करता है और यह समस्या क्यों हुई?
हमीद्रेजा सहराई 10

btw "विशेष वर्ण" में नंबर भी शामिल हैं। यह हास्यास्पद है, इस पर समय बर्बाद किया है। facepalm :)
alexr101

5
यह बटन एंड्रॉइड स्टूडियो के नवीनतम संस्करण में मौजूद नहीं है, लेकिन मेरा मानना ​​है कि यह "सिंक प्रोजेक्ट विथ ग्रैडल फाइल" विकल्प है, जिसने मेरे लिए काम किया।
नास

208

अगर आप Android Studio V 3.1 के अपडेट के बाद इस समस्या का सामना कर रहे हैं, तो नीचे की कोशिश करें।

मैं इसी समस्या का सामना कर रहा था जब मैंने एंड्रॉइड स्टूडियो 3.1 में अपडेट किया था। अन्य सभी समाधान जो मुझे यहां मिले, वे काफी मैनुअल थे क्योंकि आपको हर बार सफाई और पुनर्निर्माण करना पड़ता है, जो बिल्कुल भी अच्छा नहीं है। लेकिन इमान मारशी के जवाब के लिए धन्यवाद मैं इसे हल करने में सक्षम था।

रन पर जाएं -> कॉन्फ़िगरेशन संपादित करें ...

सुनिश्चित करें कि आपके पास लॉन्च से पहले एक "ग्रेड-अवेयर मेक" है:

रन / डिबग कॉन्फ़िगरेशन

इसे जोड़ने के लिए + साइन पर क्लिक करें और ग्रेड-अवेयर मेक का चयन करें और एक पॉपअप दिखाई देगा, बस टेक्स्ट फ़ील्ड को खाली छोड़ दें और ओके और ओके पर क्लिक करें ।


13
यह हाल के 3.1 अपडेट के लिए फिक्स है। मेरे लिए, इस मुद्दे का पहला लक्षण कोड में बदलाव के लिए एपीके नहीं "प्रतिक्रिया" था। यह अब मेरे लिए स्पष्ट है कि नया एपीके ठीक से निर्माण नहीं कर रहा था।
डेविड गे

यह उत्तर मेरे लिए हल कर सकता है। मैंने 3.1 अपडेट किया और यह त्रुटि प्राप्त की।
ज़ारनी मियो ने विन

तुम साहब एक जीवन रक्षक हो।
जोएल लिब्बी

वाह! इसके लिए आपको 1000 वोट चाहिए! एंड्रॉइड स्टूडियो 1000 डाउन वोट के हकदार हैं!
1QuickQuestion

धन्यवाद, यह निश्चित रूप से सही उत्तर है और स्वीकार किया जाना चाहिए
पेटार मारिजानोविक

68

मेरे मामले में, "ग्रैडल फाइल के साथ सिंक प्रोजेक्ट" को निष्पादित करने में मदद मिली। न तो एंड्रॉइड स्टूडियो को फिर से शुरू करना और न ही कैश को साफ़ करना कुछ भी किया।


1
धन्यवाद। मेरी मदद करो, भी। न तो एंड्रॉइड स्टूडियो को फिर से शुरू करना और न ही कैश को साफ़ करने से कोई फायदा नहीं हुआ।
ivan.panasiuk

क्या नामकरण स्क्रिप्ट को बदलने के बाद मेरे लिए चाल चली गई जो कि मेरे सामान्य से एक अलग फ़ाइल में है build.gradle, इसलिए एंड्रॉइड स्टूडियो ने स्वचालित रूप से परिवर्तन को नहीं उठाया और मुझे सिंक करने के लिए संकेत दिया।
मैग्नस डब्ल्यू

यही असली जवाब है।
azizbekian

3
File -> Sync Project with Gradle Files stackoverflow.com/a/19932896/2527204
मार्लोन

इस मुद्दे को एक इकाई परीक्षण चलाने की कोशिश कर रहा था। यह एक इकाई परीक्षण चलाने के लिए एक उपकरण के लिए पूछ रहा था।
सर्जियो

34

यदि आप केवल निष्कर्ष जानना चाहते हैं, तो कृपया अंतिम अनुभाग पर जाएँ। धन्यवाद।

आमतौर पर जब बिल्डिंग प्रोजेक्ट फेल होता है, तो कुछ सामान्य ट्रिक्स जो आप आजमा सकते हैं:

  • बिल्ड -> स्वच्छ परियोजना
  • बिल्ड वेरिएंट की जाँच करें
  • Android Studio को पुनरारंभ करें (जैसा कि आपने उल्लेख किया है)

लेकिन आपकी समस्या के लिए और अधिक विशिष्ट होना चाहिए - जब एंड्रॉइड स्टूडियो डिस्क पर एपीके फ़ाइल नहीं ढूंढ सका। इसका मतलब है कि एंड्रॉइड स्टूडियो ने वास्तव में परियोजना का सफलतापूर्वक निर्माण किया है, और एपीके भी उत्पन्न किया है, हालांकि, किसी कारण से, एंड्रॉइड स्टूडियो फ़ाइल खोजने में सक्षम नहीं है।

इस मामले में, लॉग के अनुसार मुद्रित निर्देशिका की जांच करें। यह उपयोगी है।

उदाहरण के लिए:

एंड्रॉइड स्टूडियो 2.0 पूर्वावलोकन के साथ (143.2443734 का निर्माण)।

  1. किसी विशिष्ट कमिट के लिए चेकआउट करें (ताकि यह सिर से अलग हो जाए): git चेकआउट [प्रतिबद्ध_हाश]
  2. प्रोजेक्ट चलाएं
  3. Android Studio बताता है: एपीके फ़ाइल / उपयोगकर्ता / MyApplicationName / ऐप / बिल्ड / आउटपुट / APK / ऐप-डिबग-HEAD.apk डिस्क पर मौजूद नहीं है
  4. निर्देशिका में जाएं, वास्तव में एक फ़ाइल है जिसका नाम है: ऐप-डिबग- (HEAD.apk (अतिरिक्त कोष्ठक के साथ))
  5. भागो शाखा

    * (HEAD ने 1a2bfff पर अलग किया)

तो यहाँ आप देख सकते हैं, मेरे ग्रेड बिल्ड स्क्रिप्ट की गलती के कारण , फ़ाइल का नामकरण किसी तरह गलत है।

उपरोक्त उदाहरण सिर्फ एक परिदृश्य है जो एक ही मुद्दे को जन्म दे सकता है, लेकिन आपके समान मूल कारण होने के लिए आवश्यक नहीं है।

परिणामस्वरूप, मैं आपको निर्देशिका (अंतर खोजने के लिए) की जांच करने और अपनी बिल्ड.ग्रेडल स्क्रिप्ट (आप नीचे दिए गए कुछ नाम जैसे APK नाम बदल सकते हैं ) की जांच करने के लिए दृढ़ता से अनुशंसा करते हैं :

applicationVariants.all { variant ->
        variant.outputs.each { output ->
            def newFileName = "whatever you want to name it";
            def apk = output.outputFile;
            output.outputFile = new File(apk.parentFile, newFileName);
        }
    }

2
मेरा मुद्दा यह था कि मैं एपीके नाम में ऐप संस्करण जोड़ रहा था, लेकिन ऐप संस्करण में एक्सज़ प्रारूप और "है।" (डॉट) नामकरण में त्रुटियों का कारण था। तो कोई अन्य डॉट्स याद रखें, लेकिन APK :) से पहले एक
ड्रैगनेस्कुवैलेंटिन

20

सुनिश्चित करें कि आपके पास अपने पथ में apostrophe या / नहीं है


'और' वही था जो मुझे संकलित करने से रोक रहा था। धन्यवाद @ रिम गज़ेह
मार्का एक

19

लॉन्च सेक्शन से पहले सुनिश्चित करें कि ग्रेडिंग-अवेयर मेक इन रन / डिबगिंग कॉन्फ़िगरेशन >>

इस छवि की तरह


17

जब मैं git शाखाओं को स्विच कर रहा होता हूं, तो मैं आमतौर पर इसी तरह का मुद्दा देखता हूं। मेरे लिए एंड्रॉइड स्टूडियो को बंद rm -rfv ~/Library/Caches/AndroidStudio*करना और एंड्रॉइड स्टूडियो को पुनरारंभ करना टिकट है।


मेरा इसी तरह का मुद्दा इस विधि द्वारा हल किया गया था। मैं फ़ाइल में संस्करण संख्या को जोड़ने के लिए ग्रेड बिल्ड में apk फ़ाइलों का नाम बदल देता हूं, मेरी मुख्य गतिविधि को डीबग करने की कोशिश कर रहा है गलत apk फ़ाइल नाम (पिछले संस्करण संख्या) को चलाने की कोशिश कर रहा था। निश्चित नहीं है कि यह कब शुरू हुआ लेकिन यह ठीक काम कर रहा था जब तक कि यह नहीं हुआ।
डेविड

Android स्टूडियो कैश यह बहुत बड़ी समस्या है!
GeekHades

यह है। मेरे पास सिर्फ (फिर से) मेरा बिल्ड नंबर बढ़ा है, इससे एपीके फ़ाइल का नाम बदल जाता है, फिर से मुझे यह समस्या है।
डेविड

13

Android Studio में 3.1.1 Select File | ग्रेड फाइल के साथ सिंक प्रोजेक्ट।

Android Studio 3 में, फ़ाइल का चयन करें | सिंक्रनाइज़।

फिर अपने प्रोजेक्ट को फिर से चलाएं।


स्टूडियो v3.1.1 में, फ़ाइल -> ग्रेड फाइल के साथ सिंक प्रोजेक्ट। और आप जाने के लिए अच्छे हैं
नेपोलियन

फिर शीर्ष टूलबार पर (आइकनों के साथ) एक क्षेत्र में, हथौड़ा आइकन के बगल में आपको विन्यास ड्रॉपडाउन में 'ऐप' वापस करना होगा
कोडटॉइल

11

वर्ष 2018 है। एंड्रॉइड स्टूडियो संस्करण 3.2.0 अल्फा 3 है और हमें अभी भी यह समस्या है। उपरोक्त में से कोई भी मेरे लिए काम नहीं करता है, यहाँ मेरे 2 सेंट हैं:

हर बार ऐसा होता है कि मैं कमांड लाइन से केवल एपीके उत्पन्न करता हूं:

gradlew assembleDebug

अपडेट करें

फ़ोल्डर को हटाना .AndroidStudio[version]और अपनी सभी वरीयताओं और कैश को खोना ... समस्या को हल करना प्रतीत होता है


1
लेकिन यह केवल एक निर्माण के लिए काम करता है? यदि आप आगे परिवर्तन करते हैं और 'प्ले' बटन दबाते हैं, तो यह पुराने apk को धकेल देता है और परिवर्तनों के लिए पुनर्निर्माण नहीं करता है। इतना गुस्सा, wtf वे सोच रहे थे
behelit

7

मेरे मामले में, मैं अपने ऐप फ़ाइल पथ में एक विशेष वर्ण का उपयोग कर रहा था। मैंने एंड्रॉइड स्टूडियो को बंद कर दिया और अपने ऐप फ़ाइल पथ से ' वर्ण हटा दिया । जब मैंने प्रोजेक्ट को दोबारा खोला तो सब कुछ ठीक था।


हां आदर्श रूप से एंड्रॉइड स्टूडियो को स्मार्ट होना चाहिए ताकि उपयोगकर्ताओं को उनके फ़ाइल पथ में विशेष चरित्र का उपयोग करने से रोका जा सके। या बेहतर मुझे स्वयं अच्छी प्रोग्रामिंग प्रथाओं का पालन करना चाहिए था :)
अमर कोड

6

मैंने शीर्ष विंडो से बिल्ड विकल्प का उपयोग करके एपीके का निर्माण किया है और एपीके का निर्माण किया है। कुछ अजीब करने की जरूरत नहीं है।


6

यूनिक्स जैसे उपयोगकर्ताओं (लिनक्स / मैको एक्स) के बजाय, कमांड लाइन में ~ / .ग्रेड / कैश / को हटाने के बजाय:

$ cd path_to_you_project
$ touch build.gradle

फिर एपीके बनाने के लिए एंड्रॉइड स्टूडियो से पूछें, यह अपने आप ही gradle cache को रीसेट कर देगा।


5

मेरी समस्या यह है कि मैं संस्करण संख्या को एपीके में जोड़ रहा था। संस्करण संख्या को बदलना और ग्रेडिंग को फिर से सिंक्रनाइज़ करना मेरे लिए समस्या तय कर दिया।

def appendVersionNameVersionCode(variant, defaultConfig) {
    variant.outputs.each { output ->
        if (output.zipAlign) {
            def file = output.outputFile
            def removeApp = file.name.replace("app-", "")
            def removeType = removeApp.replace("-release", "")
            def fileName = removeType.replace(".apk", "." + defaultConfig.versionName + ".apk")
            output.outputFile = new File(file.parent, fileName)
        }

        def file = output.packageApplication.outputFile
        def removeApp = file.name.replace("app-", "")
        def removeType = removeApp.replace("-release", "")
        def fileName = removeType.replace(".apk", "." + defaultConfig.versionName + ".apk")
        output.packageApplication.outputFile = new File(file.parent, fileName)
    }
}

क्या आपने अपेंडिल में appendVersionNameVersionCode कहा है?
ध्रुपाल


2

फ़ाइल -> अमान्य कैश / पुनः आरंभ करें


2

यदि आपने उपरोक्त सभी उत्तरों की कोशिश की और यह "इंस्टेंट रन" सुविधा को निष्क्रिय करने का प्रयास नहीं किया। इसने सभी प्रयासों के बाद मेरी मदद की।

फ़ाइल -> सेटिंग्स -> निर्माण, निष्पादन, तैनाती -> त्वरित रन -> वहां चेकबॉक्स को अनचेक करें


2

बिल्ड की सफाई के बाद मुझे वह मुद्दा भी मिला। मेरे समाधान के लिए मैं सिर्फ सिंक को सिंक कर रहा था और यह मेरे लिए काम कर रहा था।


2

मेरे मामले में समस्या यह थी कि डिबगिंग कॉन्फ़िगरेशन अमान्य हो गया किसी भी तरह , यहां तक ​​कि परीक्षण विधि का नाम, वर्ग या पैकेज भी नहीं बदला गया।

मैंने यहां से रन-> कॉन्फ़िगरेशन कॉन्फ़िगर करें से कॉन्फ़िगरेशन हटा दिए:

यहां छवि विवरण दर्ज करें

Android स्टूडियो स्वचालित रूप से एक नया निर्माण करेगा।


फिर आपको फ़ाइल / पुनः आयात ग्रेड परियोजना पर क्लिक करने की आवश्यकता है। यह हटाए गए रन कॉन्फ़िगरेशन को फिर से बनाएगा।
जुआन इग्नासियो बारिसिच

1

ग्रेड 1.5 के साथ एक ही समस्या का सामना करना पड़ा

मुझे बिल्ड फ़ाइलों को साफ़ करना था:

बिल्ड -> स्वच्छ परियोजना

और एक संकलन का निर्माण करने के लिए पूर्ण संकलन और सिंक फ़ाइलों के सिंक को मजबूर करने के लिए:

बिल्ड -> बिल्ड एपीके

मैं अभी भी नहीं जानता कि यह क्यों या कैसे हुआ।


1

यदि आप लिनक्स का उपयोग कर रहे हैं, तो एप्लिकेशन / बिल्ड फ़ोल्डर में लिखने की अनुमति स्थापित करने का प्रयास करें।


1

मुझे भी यही समस्या थी। यह मार्ग में गलत नाम के कारण था। इस तरह से पथ में एक विशेष चरित्र था: C: \ User \ My App \ Projekte-Tablet & Handy मैंने "&" वर्ण हटा दिया और यह अच्छी तरह से काम किया।


1

फ़ाइल नाम में मेरी समस्या मिनटों में शामिल थी - यह appname_debug_0.9.0.1_170214_2216.apk के लिए देखी गई थी जब उत्पन्न फ़ाइल appname_debug_0.9.0.1_170214_2217.apk थी, इसलिए आउटपुट फाइलनेम कोड (अन्य जगहों से nabbed) स्पष्ट रूप से दो अलग-अलग बिंदुओं से बुलाया जा रहा था। बिल्ड में।

applicationVariants.all { variant ->
        variant.outputs.each { output ->
            def project = "appname"
            def SEP = "_"
    //        def flavor = variant.productFlavors[0].name
            def buildType = variant.variantData.variantConfiguration.buildType.name
            def version = variant.versionName
            def date = new Date();
            def formattedDate = date.format('yyMMdd_HHmm')

            def newApkName = project + SEP + /*flavor + */ SEP + buildType + SEP + version + SEP + formattedDate + ".apk"

            output.outputFile = new File(output.outputFile.parent, newApkName)
        }
    }

यह ब्लॉक कहाँ से है
नेरियस जोक

यह कुछ अन्य स्टैक एक्सचेंज थ्रेड से था जब मैं पहली बार परियोजना स्थापित कर रहा था (और मुझे बहुत कम विचार था कि मैं क्या कर रहा था - वहां कुछ भी नहीं बदला)। जैसा कि ग्रैडल के इस हिस्से को कुछ बार बदल दिया गया है, यह अब अप्रचलित कोड होने की संभावना है।
इयान स्पेंसर

1

मेरे लिए समस्या यह थी कि किसी तरह यह वास्तव में एपीके को ढूंढ नहीं सकता था, जबकि एपीके मौजूद है।

The APK file /Users/Paul/AndroidStudioProjects/android-tv-launcher/ui/build/outputs/apk/nameofapk.apk does not exist on disk.
Error while Installing APK

मुझे बस इतना करना था, एपीके-कॉपी रिश्तेदार पथ पर राइट क्लिक करें, और बस

adb install -r <paste of relative path>

और apk इंस्टॉल किया गया था और जाने के लिए अच्छा था। यह मुद्दा मेरे लिए OSX पर हुआ।


1

नए एंड्रॉइड स्टूडियो 3.1 के साथ 2018 की मई में हल किया गया। अपने ऐप फ़ोल्डर के अंदर .gradle, .idea हटाएं और निर्देशिकाएं बनाएं। फिर इसे फिर से चलाने की कोशिश करें और आप त्रुटि नहीं देखेंगे।


1

सिंक, स्वच्छ, पुनर्निर्माण और अमान्य कैश और पुनः आरंभ करें

उनमें से किसी ने मेरे लिए काम नहीं किया।

मैंने रिलीज़ फ़ोल्डर और डिबग फ़ोल्डर में एपीके और आउटपुट.जॉन फ़ाइलों को हटा दिया है और फिर सिंक, क्लीन और बिल्ड की कोशिश की है, फिर ठीक काम किया है।


0

मैं build.gradle फ़ाइल को एक litle जानकारी बदलता हूं, और "सिंक नाउ" पर क्लिक करता हूं, बस ठीक है।


0

निर्देशिका निकालें ~ / .ग्रेड / कैश /। Android Studio के खुलने के बाद ऐसा करना ठीक है। (गलत पैकेज नाम स्थापित करने का समय दें) एंड्रॉइड स्टूडियो पर "ग्रेड फ़ाइलों के साथ सिंक प्रोजेक्ट" आइकन दबाएं परियोजना को चलाएं और दूरस्थ पथ सही हो जाएगा।

रेफर उत्तर @ एंड्रॉइड स्टूडियो को .apk चलाते समय पैकेज का नाम गलत हो जाता है


0

सुनिश्चित करें कि आपके लॉग में उत्पन्न पथ में आपके मामले में:

/Users/MyApplicationName/app/build/outputs/apk/app-debug.apk

फ़ोल्डर "आउटपुट" वास्तव में एक "apk" फ़ोल्डर है।

यह मेरी समस्या थी, अगर यह नहीं है, तो आपको नीचे दिए गए स्क्रीनशॉट का पालन करके "असेंबलीरेज़" कार्य को रनवे में चलाने की आवश्यकता होगी;

ग्रेडेल असेंबली कार्य को चलाने के लिए चरण तब फ़ोल्डर उत्पन्न हो जाएगा।


0

ऊपर कुछ भी मेरी मदद नहीं की, लेकिन मैंने इसे बिल्ड टूल्स पैनल में एक और स्वाद के लिए स्विच करके और फिर आवश्यक एक पर वापस स्विच करके पता लगाया।


0

फ़ाइल को संशोधित करें: build.gradle (ऐप निर्देशिका)। वास्तव में: आपको इस फाइल को नहीं बदलना चाहिए, केवल इसके द्वारा सिंक टिप्स प्राप्त करने के लिए, फिर सिंक प्रोजेक्ट।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.