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




android-studio apk (20)

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

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

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


बिल्ड ---> बिल्ड एपीके (एस) और सुनिश्चित करें कि यह काम करता है


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

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

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

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

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


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


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

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

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

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

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

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


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


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


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


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


बटन को "सिंक फाइल के साथ सिंक प्रोजेक्ट" कहा जाता है और यह एक जैसा दिखता है: ... संस्करण संख्या को अपडेट करते समय हमेशा इसे क्लिक करने की आवश्यकता होती है, जिसके परिणामस्वरूप एक और एपीके फ़ाइलनाम होता है (जब तक कि फ़ाइल नाम नहीं बदला गया हो, पैकेज को स्थापित करना हमेशा काम करता है, जो संकेत देता है, कि फ़ाइल नाम कैश किया जा रहा है)। समतुल्य --recompile-scripts सीएलआई विकल्प --recompile-scripts प्रतीत होता है।

@ हम परिशिष्ट डी। ग्रेड कमांड लाइन


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


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

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)
    }
}

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

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

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


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


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

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 पर हुआ।


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


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

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

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

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

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

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

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

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

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

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

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

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

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);
        }
    }

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

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


यूनिक्स जैसे यूज़र्स के लिए (Linux / MacOs X), कमांड लाइन में ~ / .ग्रेड / कैश / को हटाने के बजाय, करें:

$ cd path_to_you_project
$ touch build.gradle

फिर एपीके बनाने के लिए एंड्रॉइड स्टूडियो से पूछें, यह ग्रेडल कैश को स्वयं रीसेट करेगा।


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


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

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

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

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

तब फ़ोल्डर उत्पन्न हो जाएगा।






apk