ข้อผิดพลาด ': แอป: lintVitalRelease' เมื่อสร้าง apk ที่ลงชื่อแล้ว


238

ฉันพยายามอัปโหลด apk ของฉันบน Google Play และพบข้อความแสดงข้อผิดพลาด: "คุณอัปโหลด APK ที่ debuggable ได้เพื่อเหตุผลด้านความปลอดภัยคุณต้องปิดใช้งานการดีบักก่อนที่จะสามารถเผยแพร่ใน Google Play เรียนรู้เพิ่มเติมเกี่ยวกับ APK ที่ debuggable"

จากนั้นฉันก็เขียนandroid:debuggable="false"ในรายการและลองอีกครั้ง ฉันพบข้อผิดพลาดเดียวกันดังนั้นฉันจึงตั้งค่าชุดตัวสร้างจากโมดูลของฉันให้เป็นอิสระและพยายามสร้าง apk อีกครั้ง แต่คราวนี้ข้อผิดพลาดนี้ถูกสร้างขึ้น:

Error:Gradle: Execution failed for task ':app:lintVitalRelease'.
Lint found fatal errors while assembling a release target.
  To proceed, either fix the issues identified by lint, or modify your build script as follows:
  ...
  android {
      lintOptions {
          checkReleaseBuilds false
          // Or, if you prefer, you can continue to check for errors in release builds,
          // but continue the build even when errors are found:
          abortOnError false
      }
  }
  ...

38
คำตอบทั้งหมดดูเหมือนจะไม่ตรวจสอบข้อผิดพลาดหรือไม่ยกเลิกข้อผิดพลาด แต่สิ่งที่เกี่ยวกับการค้นหาปัญหาและแก้ไขมัน ??? Android Studio ไม่แสดงข้อมูลเกี่ยวกับสิ่งผิดปกติ ... ใครสามารถแก้ไขได้โดยไม่สนใจข้อผิดพลาด?
Federico Alvarez

stackoverflow.com/questions/43203415/…ไปที่หน้านี้ มันทำงานให้ฉัน
Halim Bezek

5
"แต่สิ่งที่เกี่ยวกับการค้นหาปัญหาและแก้ไขมัน ???" ฉันคิดเหมือนกัน แต่ฉันมักจะมองข้ามแท็บ 'ผลการตรวจสอบ' ที่แถบด้านล่างและสร้างเนื้อหาโฟลเดอร์รายงาน โปรดตรวจสอบ.
PravyNandas

1
โฟลเดอร์ build / report เป็นคำแนะนำที่ดีมาก สำหรับฉันปัญหาหายไปแปลและชัดเจนจากรายงาน html
Pete

ในข้อผิดพลาดของ google ให้วิธีแก้ปัญหาแก่คุณทำไมคุณไม่ลองทำอย่างนี้ ???? ตอนแรกพยายามเข้าใจข้อผิดพลาดรวมถึงข้อความแสดงข้อผิดพลาด
Mafujul

คำตอบ:


393

ฉันไม่แนะนำให้ปิดการตรวจสอบผ้าสำลีพวกเขาอยู่ที่นั่นด้วยเหตุผล ให้ตรวจสอบข้อผิดพลาดและแก้ไข

[app module]/build/reports/lint-results-yourBuildName-fatal.htmlรายงานข้อผิดพลาดจะถูกบันทึกไป คุณสามารถเปิดไฟล์นี้ในเบราว์เซอร์เพื่ออ่านเกี่ยวกับข้อผิดพลาด

มันจะดีถ้า Gradle สามารถทำให้ชัดเจนขึ้นเล็กน้อยเมื่อสร้างรายงานข้อผิดพลาด


8
เห็นด้วยจะดีกว่ามากในการแก้ไขข้อผิดพลาด! นอกจากนี้ยังเป็นไปได้ที่จะสร้างรายงานด้วยตนเองด้วยgradlew lintหรือผ่าน IDE ดูที่developer.android.com/studio/write/lint
Anigif

3
ใช่ทิศทางที่ถูกต้อง นอกจากนี้รายงานข้อผิดพลาดใน html นั้นได้รับการอธิบายอย่างดีและข้อผิดพลาดได้ถูกแก้ไขแล้วดังนั้นฉันจึงแก้ไขได้อย่างง่ายดาย!
CodeToLife

6
ใช่มันเป็นความน่ารำคาญมากเมื่อมันพูดfix the issues identified by lintแต่ไม่จริงแสดงให้เห็นข้อผิดพลาดเหล่านั้นหรือเส้นทางไปยังรายงาน ...
user25

7
นี่จะต้องเป็นคำตอบที่ได้รับการยอมรับ การปิดใช้งานผ้าสำลีนั้นไม่ใช่ทางออกที่ดี
slhddn

1
ในกรณีของฉันเกิดข้อผิดพลาดMissingTranslation: Incomplete translation- คำถามสำหรับ Google: ทำไมถึงไม่แสดงใน Android Studio? มันเรียกว่าintegrated development environmenta ด้วยเหตุผล
คนที่ไหนสักแห่งที่

187

ฉันมีปัญหานี้และแก้ไขได้โดยการเพิ่ม:

lintOptions { 

    checkReleaseBuilds false

}

ไปยังbuild.gradleไฟล์ของฉันภายในandroid{ }ส่วน       


มันไม่ได้มีผลข้างเคียงอื่น ๆ ในใบสมัครใช่ไหม?
committedandroider

10
ไม่การปิดผ้าสำลีจะไม่ทำให้เกิดผลข้างเคียงใด ๆ กับแอปพลิเคชัน ผ้าสำลีเป็นเครื่องมือในการวิเคราะห์รหัสและข้อผิดพลาดที่กล่าวถึงในที่นี้เกิดจากการตั้งค่าคุณสมบัติที่สามารถ debuggable ได้ในรายละเอียดในไฟล์ "lint-results-release-fatal.html" ในโฟลเดอร์ build / outputs
ข้อผิดพลาด 1337

มีปัญหาในการเพิ่มส่วน android {} ลงในไฟล์ build.grade ระดับบนสุดของฉัน; ให้ทำตามคำแนะนำอื่น ๆ และเพิ่มไฟล์นี้ลงในไฟล์ build.grade ของฉันที่ระดับแอพนั่นคือโฟลเดอร์หนึ่งลงไปอีกซึ่งส่วนของ android นั้นมีอยู่แล้ว
Martin Zaske

13
คำเตือน:นี่เป็นการปิดการตรวจสอบผ้าสำลี อย่างน้อยก็ควรดูข้อผิดพลาดก่อนปิดใช้งาน ในกรณีของฉันพวกเขาเกี่ยวกับสตริงที่ขาดหายไปสำหรับภาษาเฉพาะ กด "วิเคราะห์" -> "ตรวจสอบรหัส .. "
Markus

2
ฉันไม่แนะนำสิ่งนี้ ในกรณีของฉันโดยไม่คำนึงถึงคำเตือนเหล่านี้อาจทำให้เกิดข้อผิดพลาดในขณะทำงานเกิดจากทรัพยากรที่หายไป โปรดตรวจสอบ lint-results-release-fatal.html และแก้ไขปัญหาทั้งหมด
Paweł Nadolski

76

หากคุณต้องการทราบข้อผิดพลาดที่แน่นอนให้ไปที่เส้นทางต่อไปนี้ในโครงการของคุณ: /app/build/reports/lint-results-release-fatal.html(or .xml) วิธีที่ง่ายที่สุดคือถ้าคุณไปที่ไฟล์ xml มันจะแสดงให้คุณเห็นว่าข้อผิดพลาดคืออะไรรวมถึงตำแหน่งของข้อผิดพลาดในคลาส java หรือไฟล์ xml ของคุณ การปิดการตรวจสอบผ้าสำลีนั้นไม่ใช่ความคิดที่ดีเพราะมันมีเหตุผล ไปที่:

    /app/build/reports/lint-results-release-fatal.html or 
    /app/build/reports/lint-results-release-fatal.xml

และแก้ไข


2
นี่เป็นวิธีที่ดีกว่าเพียงแค่ละเว้นข้อผิดพลาดและดำเนินการต่อ และไฟล์ HTML นั้นง่ายต่อการเข้าใจปัญหา
John Pang

ฉันพบปัญหาใน /app/build/reports/lint-results-release-fatal.xml ขอบคุณ
Bukunmi

ช่วยชีวิต แก้ไขปัญหาได้ภายในเสี้ยววินาทีหลังจากดูไฟล์ xml
Roman Rozenshtein

50

ตรวจสอบให้แน่ใจว่าคุณได้กำหนดคำแปลทั้งหมดในstring.xmlไฟล์ทั้งหมด


1
นั่นคือปัญหาของฉัน .... เพิ่มคำแปลที่ขาดหายไปแก้ไขปัญหาขอบคุณ
ฮาเต็ม Badawi

ทำงานให้ฉันแปลบางอย่างหายไป
Himanshu Rawat

40

ในกรณีที่คุณอาจพยายามค้นหาตำแหน่งของปัญหาฉันพบของฉันในเส้นทางต่อไปนี้ของโครงการของฉัน: /app/build/reports/lint-results-release-fatal.html (หรือ. xml)

หวังว่านี่จะช่วยได้!


ทั้งคู่เป็นไฟล์ว่างเปล่าสำหรับฉัน
m9m9m

35

ฉันประสบปัญหาเดียวกันเมื่อสร้าง apk ที่ลงชื่อจาก android studio ฉันเพิ่งเปลี่ยนการเปลี่ยนแปลงเล็กน้อยในไฟล์build.gradleภายในandroid {}

lintOptions {
        checkReleaseBuilds false
        abortOnError false
    }

สิ่งนี้ใช้ได้สำหรับฉัน ฉันมีปัญหาที่คล้ายกัน การดำเนินการล้มเหลวสำหรับภารกิจ ': แอป: ผ้าสำลี *** ปล่อย' > org.picocontainer.MutablePicoContainer.registerComponentInstance (Ljava / lang / Object;) Lorg / picocontainer / ComponentAdapter;
เนลสันรามิเรซ

24

วิธีค้นหารายละเอียดข้อผิดพลาด

Anylyze -> ตรวจสอบรหัส

ป้อนคำอธิบายรูปภาพที่นี่

จากนั้นในผลการตรวจสอบคุณจะเห็นข้อผิดพลาด

ป้อนคำอธิบายรูปภาพที่นี่

ในกรณีของฉันสร้างล้มเหลวเนื่องจากการอ้างอิง javadoc ที่ยังไม่ได้แก้ไขใน Google IAP 😐


3
นี่ควรเป็นคำตอบที่ยอมรับได้ สำหรับทุกคนที่แนะนำให้ปิดใช้งานการตรวจสอบผ้าสำลีนั่นเป็นเพียงการแก้ไข มันยังดีกว่าที่จะแก้ไขข้อผิดพลาดกว่าข้าม การข้ามการตรวจสอบผ้าสำลีควรกระทำในกรณีที่เฉพาะเจาะจงเท่านั้นและไม่ใช่ตลอดเวลา อีกครั้งที่ควรจะทำไม่บ่อยหรือไม่ได้เลย
Archie G. Quiñones

20
***Try this***

 buildTypes {
        release {
            lintOptions {
                disable 'MissingTranslation'
                checkReleaseBuilds false
                abortOnError false
            }
            minifyEnabled false
            signingConfig signingConfigs.release
        }
    }

18

คุณสามารถค้นหาข้อมูลเพิ่มเติมได้จากการเลือกประกอบจากแท็บ gradle build:ป้อนคำอธิบายรูปภาพที่นี่


5
นี่คือคำตอบที่แท้จริงไปที่แอสเซมเบลอร์ในหน้าต่างไล่ระดับสีและเรียกใช้โดยการคลิกสองครั้งที่สตูดิโอ Android จะบอกคุณว่าสิ่งที่มันกำลังปรากฏ
Wajid Ali

1
โอ้พระเจ้าของฉัน ... ขอบคุณ! อันนั้นช่วยฉันได้เยอะมาก! : D
thinklinux

ฉันได้รับlintOptions { checkReleaseBuilds false // Or, if you prefer, you can continue to check for errors in release builds, // but continue the build even when errors are found: abortOnError false }และฉันเพิ่มมัน แต่ฉันได้รับข้อผิดพลาดเดียวกันทุกครั้งที่ฉันสร้างการเปิดตัว
Oliver D

11

ลอง 3 บรรทัดในไฟล์ app.gradle

android {
lintOptions {
    checkReleaseBuilds false
    // Or, if you prefer, you can continue to check for errors in release builds,
    // but continue the build even when errors are found:
    abortOnError false
}

@justColbs อาจเป็นเพราะคุณประสบปัญหาอื่น โพสต์ปัญหาของคุณกับ log cat อาจเป็นคำแนะนำที่เหมาะสม
Rehan Sarwar

8

ปัญหาของฉันคือการแปลที่ขาดหายไป ฉันมี settings.xml ที่ไม่ได้รับการแปลเนื่องจากไม่จำเป็นดังนั้นฉันจึงต้องเพิ่ม "translatable =" false "ลงในสตริง:

สตริงนี้ไม่ต้องการการแปล


8

สวัสดีพวกนี้ใช้งานได้สำหรับฉันฉันเพิ่งแก้ไข BuildTypes ของฉันเช่นนี้:

buildTypes {
        release {
            android {
                lintOptions {
                    checkReleaseBuilds false
                    // Or, if you prefer, you can continue to check for errors in release builds,
                    // but continue the build even when errors are found:
                    abortOnError false
                }
            }
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

7

เพียงค้นหาสาเหตุข้อผิดพลาดที่นี่และแก้ไข

yourProject/app/build/reports/lint-results-release-fatal.xml

1
คุณควรรู้ว่าอะไรคือข้อผิดพลาดที่แน่นอนและรับรองซ้ำ ขอบคุณ.
Asesha George

ฉันพบTargetSdkVersion No Longer Supported: Google Play requires that apps target API level 26 or higher.ในบันทึกของฉันเช่นไม่สามารถตั้งtargetSdkVersion25
ผลไม้

6

ปัญหาของฉันคือการแปลที่ขาดหายไป ฉันมี settings.xml ที่ไม่ได้รับการแปลเนื่องจากไม่จำเป็นดังนั้นฉันจึงต้องเพิ่ม "translatable =" false "ลงในสตริง:

<string translatable="false" name="stringname">This string doesn't need translation</string>

4

ตามที่หลายคนแนะนำไว้จะเป็นการดีกว่าที่จะลองและแก้ไขข้อผิดพลาดจากแหล่งที่มา ตรวจสอบไฟล์ที่สร้างขึ้นมา

/app/build/reports/lint-results-release-fatal.html

อ่านไฟล์และคุณจะถูกนำไปยังข้อผิดพลาดที่มาจาก ลองดูของฉัน: ข้อผิดพลาดมาจากข้อ จำกัด การดูที่ไม่เหมาะสม


4

แก้ไขปัญหานี้โดยใช้สิ่งนี้ใน build.gradle (แอป) ไฟล์ภายใน Android หลัก {Inside}

  buildTypes {
      //  crunchPngs false // or true   when png error
        release {
            lintOptions {
                checkReleaseBuilds false
                abortOnError false
            }
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

3

ลองรหัสด้านล่าง

buildTypes {
    release {
        lintOptions {
            disable 'MissingTranslation'
            checkReleaseBuilds false
            abortOnError false
        }
        minifyEnabled false
        signingConfig signingConfigs.release
    }
}

3

ป้อนคำอธิบายรูปภาพที่นี่

เพิ่มสิ่งนี้ภายใน android {} build.gradle (โมดูล: แอป)

lintOptions {
    checkReleaseBuilds false
    // Or, if you prefer, you can continue to check for errors in release builds,
    // but continue the build even when errors are found:
    abortOnError false
}

2

Windows -> การอ้างอิง -> Android-> การตรวจสอบข้อผิดพลาดผ้าสำลี

un tick เรียกใช้ข้อผิดพลาดแบบเต็ม .......

ป้อนคำอธิบายรูปภาพที่นี่


1
สวยมาก แต่หน้าต่างนี้มาจากไหน ฉันไม่สามารถหาได้ใน Android สตูดิโอ ...
มาร์ติน Zaske

2

ไปที่ build.gradle (โมดูล: แอป)

lintOptions {
    checkReleaseBuilds false
    // Or, if you prefer, you can continue to check for errors in release builds,
    // but continue the build even when errors are found:
    abortOnError false
}



0

ในกรณีของฉันปัญหาเกี่ยวข้องกับระดับ API ขั้นต่ำเป้าหมายที่ Google Play กำหนด มันถูกตั้งค่าน้อยกว่า 26

ปัญหาหายไปเมื่อฉันตั้งค่าระดับเป้าหมาย API ขั้นต่ำเป็น 26


0
    lintOptions {
      checkReleaseBuilds false
      abortOnError false
    }

โค้ดด้านบนสามารถแก้ไขปัญหาได้โดยการเพิกเฉย แต่อาจส่งผลให้แอปขัดข้องเช่นกัน

คำตอบที่ดีอยู่ในลิงค์ต่อไปนี้:

เกิดข้อผิดพลาดเมื่อสร้าง apk ที่ลงชื่อแล้ว


-2

หากคุณเพิ่มใน app.gradle ภายใต้ Android {

lintOptions {

    quiet true
    abortOnError false
}

}

มันจะไปทำงาน


ฉันคิดว่ามันจะดีกว่าที่จะแก้ไขผ้าสำลีและข้อผิดพลาดถ้าเป็นไปได้แทนที่จะข้ามการตรวจสอบ
Piero
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.