android कारण: buildOutput.apkData अशक्त नहीं होना चाहिए




android-studio mobile (8)

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

मै इस्तेमाल कर रहा हूँ:

  • एसडीके 28 (एंड्रॉयड 9.0 (पाई))
  • गाद 5.1.1
  • ग्रैगल प्लगिन 3.5.0-अल्फा03
  • कोटलिन 1.3.10
  • जावा 1.8.0_151
  • OSX 10.13.2
    org.gradle.internal.exceptions.LocationAwareException: buildOutput.apkData must not be null
        at org.gradle.initialization.exception.DefaultExceptionAnalyser.transform(DefaultExceptionAnalyser.java:99)
        at org.gradle.initialization.exception.DefaultExceptionAnalyser.collectFailures(DefaultExceptionAnalyser.java:65)
        at org.gradle.initialization.exception.MultipleBuildFailuresExceptionAnalyser.transform(MultipleBuildFailuresExceptionAnalyser.java:39)
        at org.gradle.initialization.exception.StackTraceSanitizingExceptionAnalyser.transform(StackTraceSanitizingExceptionAnalyser.java:29)
        at org.gradle.initialization.DefaultGradleLauncher.finishBuild(DefaultGradleLauncher.java:194)
        at org.gradle.initialization.DefaultGradleLauncher.finishBuild(DefaultGradleLauncher.java:141)
        ...
    Caused by: java.lang.IllegalStateException: buildOutput.apkData must not be null
        at com.android.build.gradle.internal.ide.EarlySyncBuildOutput$Companion$load$2.invoke(EarlySyncBuildOutput.kt:103)
        at com.android.build.gradle.internal.ide.EarlySyncBuildOutput$Companion$load$2.invoke(EarlySyncBuildOutput.kt:67)
        at kotlin.sequences.TransformingSequence$iterator$1.next(Sequences.kt:174)
        at kotlin.sequences.SequencesKt___SequencesKt.toCollection(_Sequences.kt:691)
        at kotlin.sequences.SequencesKt___SequencesKt.toMutableList(_Sequences.kt:721)
        at kotlin.sequences.SequencesKt___SequencesKt.toList(_Sequences.kt:712)
        ...

परियोजना की सफाई से समस्या का समाधान हो सकता है, लेकिन मेरे लिए यह इस तरह से काम करता है।

फ़ाइल-> सिंक फाइल के साथ सिंक प्रोजेक्ट।


प्रोजेक्ट की सफाई करने से मुझे मदद नहीं मिली, लेकिन सभी मॉड्यूल में सभी ऑटो-जेनरेट बिल्ड फ़ोल्डरों को मैन्युअल रूप से हटाने में मदद मिली।


मेरे मामले में विभिन्न बिल्ड कॉन्फिग के साथ बिल्ड और लॉन्च प्रोजेक्ट सफल रहा। लेकिन हस्ताक्षरित APK थ्रो उत्पन्न Cause: buildOutput.apkData must not be null त्रुटि का Cause: buildOutput.apkData must not be null दूसरी ओर से Cause: buildOutput.apkData must not be null APK उत्पन्न हुई थी और BUILD SUCCESSFUL व्यू आउटपुट प्रिंट टॉगल करें। संदेश इंस्टॉलेशन के साथ मैनुअल इंस्टॉलेशन समाप्त App not installed । मेरी गलती compileSdkVersion 'android-P' का उपयोग कर compileSdkVersion 'android-P' थी और compileSdkVersion 28 बदलने के बाद सब ठीक हो जाता है।


मेरे मामले में यह समस्या Android Studio 3.4 अद्यतन के कारण होती है।

चरण 1: एंड्रॉइड स्टूडियो 3.4 अपडेट करने के बाद आपको अपने ऐप-स्तर build.gradle में अपने मॉड्यूल या लाइब्रेरी में उपयोग होने वाली सभी निर्भरता को जोड़ने की जरूरत है।

चरण 2: स्वच्छ परियोजना (बिल्ड> स्वच्छ परियोजना)

चरण 3: पुनर्निर्माण परियोजना (बिल्ड> पुनर्निर्माण परियोजना)

अब, आपका प्रोजेक्ट पूरी तरह से संकलित होगा।


मुझे यह त्रुटि तब भी हो रही थी, जब मैंने अपने रिलीज़ संस्करण के लिए "जेनरेट साइनड एपीके" की कोशिश की। मैंने उपरोक्त सभी तरीकों की कोशिश की, दुर्भाग्य से मेरे लिए कोई काम नहीं किया।

जो काम किया, वह ऐप के पहले डिबग हस्ताक्षरित संस्करण को उत्पन्न कर रहा था, और फिर रिलीज़ को फिर से जनरेट कर रहा था।

मुझे नहीं पता कि वास्तव में क्या बदल गया या मूल समस्या क्या थी, लेकिन यह काम किया। मुझे उम्मीद है कि यह आपकी भी मदद करेगा, क्योंकि यह त्रुटि काफी कष्टप्रद है ...


Android Studio 3.4 के लिए अद्यतन? , मुझे संदेश मिला

कारण: buildOutput.apkData अशक्त नहीं होना चाहिए

एक उत्तर की तलाश में मुझे यह प्रक्रिया मिली:

Build -> Clean Project

लेकिन यह काम नहीं किया, मुझे पता है कि यह प्रक्रिया /build निर्देशिका में सामग्री को हटा देगी, लेकिन मेरे अनुभव के लिए यह सभी मामलों में काम नहीं करती है, इसलिए मैंने निर्देशिका को हटाने का "कच्चा" तरीका आज़माया:

gradlew clean build

तो मैं इस परियोजना के पुनर्निर्माण और यह काम किया।


इससे मेरा काम बनता है:

  1. मैन्युअल रूप से अपने प्रोजेक्ट से बिल्ड फ़ोल्डर हटाएं।

  2. एंड्रॉइड स्टूडियो के टर्मिनल में यह कमांड टाइप करें

अगर विंडोज़ उपयोगकर्ता

./gradlew clean build

अगर लिनक्स उपयोगकर्ता

/app/build/ 

Build -> Clean Project क्लिक करें

फिर Build -> Make Project

3.5.0-अल्फा 3, -alpha5 और 3.4.0 (प्रोजेक्ट ग्रेडल) पर परीक्षण किया गया

classpath 'com.android.tools.build:gradle:3.5.0-alpha03'




mobile-application