Lỗi ': app: lintVitalRelease' khi tạo apk đã ký


236

Tôi đã cố tải lên apk của mình trên google play và gặp thông báo lỗi: "Bạn đã tải lên APK có thể gỡ lỗi. Vì lý do bảo mật, bạn cần tắt gỡ lỗi trước khi có thể xuất bản trong Google Play. Tìm hiểu thêm về APK có thể gỡ lỗi."

Sau đó, tôi đã viết android:debuggable="false"trong bảng kê khai của mình và thử lại. Tôi đã gặp phải lỗi tương tự, vì vậy tôi đã đặt biến thể xây dựng từ mô-đun của mình để phát hành và thử tạo lại apk, nhưng lần này, lỗi này được tạo:

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
Tất cả các câu trả lời dường như không phải là để kiểm tra lỗi hoặc không hủy bỏ lỗi, nhưng còn việc tìm ra vấn đề và sửa lỗi thì sao ??? Android Studio cho thấy không có thông tin về những gì sai ... Bất kỳ ai cũng có thể sửa lỗi này mà không bỏ qua lỗi?
Federico Alvarez

stackoverflow.com/questions/43203415/ trên trang này trả lời. nó hoạt động với tôi
Halim Bezek

5
"nhưng những gì về việc tìm ra vấn đề và sửa nó ???" Tôi cũng nghĩ như vậy nhưng tôi luôn bỏ qua tab 'Kết quả kiểm tra' ở thanh dưới cùng và cũng xây dựng \ báo cáo nội dung thư mục. Hãy kiểm tra.
PravyNandas

1
xây dựng / báo cáo thư mục là một mẹo rất tốt. Đối với tôi, vấn đề là thiếu bản dịch và rõ ràng từ báo cáo html.
Pete

về lỗi google cung cấp cho bạn giải pháp, tại sao bạn không thử cách này ???? lúc đầu hãy cố gắng hiểu lỗi cũng như thông báo lỗi
Mafujul

Câu trả lời:


391

Tôi không khuyên bạn nên tắt séc, vì họ có lý do. Thay vào đó, hãy kiểm tra lỗi là gì và sửa nó.

Báo cáo lỗi được lưu vào [app module]/build/reports/lint-results-yourBuildName-fatal.html. Bạn có thể mở tệp này trong trình duyệt để đọc về các lỗi.

Sẽ thật tuyệt nếu Gradle có thể nói rõ hơn một chút về nơi báo cáo lỗi được tạo.


8
Đồng ý, tốt hơn hết là sửa lỗi! Cũng có thể tạo báo cáo theo cách thủ công bằng gradlew linthoặc thông qua IDE, xem developer.android.com/studio/write/lint
Anigif

3
vâng, hướng thẳng. Hơn nữa, báo cáo lỗi trong html đó đã được mô tả tốt và các lỗi đã được xử lý ok, vì vậy tôi chỉ cần sửa chúng một cách dễ dàng!
CodeToLife

6
vâng, nó rất khó chịu khi nó nói fix the issues identified by lintnhưng thực sự không hiển thị những lỗi hoặc đường dẫn để báo cáo ...
user25

7
Đây phải là câu trả lời được chấp nhận. Vô hiệu hóa xơ vải không phải là một giải pháp tốt.
slhddn

1
trong trường hợp của tôi, lỗi là MissingTranslation: Incomplete translation- câu hỏi dành cho Google: tại sao điều này không được hiển thị trong Android Studio ?? Nó được gọi là integrated development environmentmột lý do.
Ai đó ở đâu đó vào

186

Tôi đã có vấn đề này và giải quyết nó bằng cách thêm:

lintOptions { 

    checkReleaseBuilds false

}

để build.gradletập tin của tôi trong android{ }phần.       


Điều này không có tác dụng phụ nào khác trên ứng dụng phải không?
committedandroider

10
Không, tắt lint sẽ không gây ra bất kỳ tác dụng phụ nào trên ứng dụng. Lint là một công cụ phân tích mã và lỗi được đề cập ở đây do cài đặt thuộc tính có thể gỡ lỗi có thể được xem chi tiết trong tệp "lint-results-release-fatal.html" trong thư mục xây dựng / đầu ra.
lỗi1337

Đã gặp sự cố khi thêm phần android {} vào tệp build.THER cấp cao nhất của tôi; Vì vậy, hãy làm theo một số lời khuyên khác và thêm nó vào tệp build.THER của tôi ở cấp độ của ứng dụng, tức là một thư mục ở phía dưới, nơi phần Android đã có sẵn.
Martin Zaske

13
Cảnh báo: Điều này chỉ đơn giản là vô hiệu hóa kiểm tra lint. Ít nhất nên xem xét các lỗi trước khi vô hiệu hóa chúng. Trong trường hợp của tôi, họ nói về một số chuỗi bị thiếu cho các ngôn ngữ cụ thể. Nhấn "Phân tích" -> "Kiểm tra mã .."
Markus

2
Tôi không khuyên bạn điều này. Trong trường hợp của tôi, bỏ qua các cảnh báo này sẽ gây ra sự cố trong thời gian chạy do thiếu tài nguyên. Vui lòng xem lại lint-results-release-fatal.html và khắc phục tất cả các vấn đề.
Paweł Nadolski

75

nếu bạn muốn tìm ra lỗi chính xác, hãy đi đến đường dẫn sau trong dự án của bạn: /app/build/reports/lint-results-release-firth.html(or .xml). Cách dễ nhất là nếu bạn truy cập tệp xml, nó sẽ cho bạn biết chính xác lỗi đó bao gồm vị trí lỗi của nó trong lớp java hoặc tệp xml của bạn. Tắt kiểm tra xơ vải không phải là một ý tưởng tốt, họ ở đó vì một lý do. Thay vào đó, hãy đi đến:

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

và sửa nó.


1
Đây là cách tốt hơn là chỉ bỏ qua các lỗi và di chuyển trên. Và tệp HTML rất dễ hiểu vấn đề.
John Pang

tôi đã tìm thấy sự cố trong /app/build/reports/lint-results-release-firth.xml. cảm ơn
Bukunmi

Cứu người. Vấn đề được giải quyết trong vài giây theo nghĩa đen, sau khi xem tệp xml.
Roman Rozenhtein

50

Hãy chắc chắn rằng bạn đã xác định tất cả các bản dịch trong tất cả các string.xmltệp


1
đó là vấn đề của tôi .... thêm bản dịch bị thiếu khắc phục sự cố cảm ơn
HHR Badawi

Làm việc cho tôi một số bản dịch bị thiếu.
Himanshu Rawat

40

Trong trường hợp bạn có thể cố gắng xác định vị trí của sự cố, tôi đã tìm thấy vấn đề của mình trong đường dẫn sau của dự án: /app/build/reports/lint-results-release-firth.html (hoặc .xml).

Hi vọng điêu nay co ich!


cả hai đều là tập tin trống cho tôi
m9m9m

35

Tôi đã gặp phải vấn đề tương tự khi tạo apk có chữ ký từ studio android. Tôi chỉ thay đổi một chút thay đổi trên tệp build.gradle trong android {}

lintOptions {
        checkReleaseBuilds false
        abortOnError false
    }

Điều này làm việc cho tôi. Tôi đã có một vấn đề tương tự. Thực thi không thành công cho nhiệm vụ ': app: lint *** Release'. > org.picocontainer.MutablePicoContainer.registerComponentInstance (Ljava / lang / Object;) Lorg / picocontainer / ElementAd CHƯƠNG;
Nelson Ramirez

24

Cách tìm chi tiết lỗi

Anylyze -> Kiểm tra mã

nhập mô tả hình ảnh ở đây

Sau đó, trong Kết quả kiểm tra, bạn sẽ thấy một lỗi

nhập mô tả hình ảnh ở đây

Trong trường hợp của tôi, việc xây dựng không thành công do tham chiếu javadoc chưa được giải quyết trong Google IAP


3
Đây phải là câu trả lời được chấp nhận. Đối với tất cả những người đề nghị vô hiệu hóa kiểm tra xơ vải, đó chỉ là một công việc xung quanh. Nó vẫn tốt hơn để sửa lỗi hơn là bỏ qua nó. Bỏ qua kiểm tra xơ vải chỉ nên được thực hiện trong các trường hợp rất cụ thể và không phải tất cả thời gian. MỘT LẦN NỮA, R SHNG NÊN LÀM RARELY HOẶC NGAY LẬP TỨC.
Archie G. Quiñones

20
***Try this***

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

18

Bạn có thể tìm thêm thông tin chọn lắp ráp từ tab xây dựng lớp:nhập mô tả hình ảnh ở đây


5
Đây là câu trả lời thực tế, đi đến phần lắp ráp trong ứng dụng, trong cửa sổ lớp và chạy nó bằng cách nhấp đúp, studio Android sẽ cho bạn biết chính xác những gì nó đã xuất hiện.
Wajid Ali

1
Trời ơi ... cảm ơn! Điều đó đã giúp tôi tiết kiệm rất nhiều thời gian! : D
thinklinux

Tôi đã nhận, 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 }và tôi đã thêm nó nhưng tôi đã gặp lỗi tương tự mỗi lần tôi xây dựng một bản phát hành
Oliver D

11

Hãy thử 3 dòng này trong tệp app.gradle của bạn.

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 có thể bạn phải đối mặt với một vấn đề khác. Đăng vấn đề của bạn với log mèo có thể là một trong những hướng dẫn bạn đúng.
Rehan Sarwar

8

Vấn đề của tôi là một bản dịch bị thiếu. Tôi đã có một tệp cài đặt không được dịch vì nó không cần thiết, vì vậy tôi phải thêm "translitable =" false "vào chuỗi:

Chuỗi này không cần dịch


8

Xin chào các bạn, cái này hiệu quả với tôi, tôi chỉ sửa đổi BuildTypes của mình như thế này:

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

Chỉ cần tìm lý do lỗi ở đây và sửa nó.

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

1
bạn nên biết chính xác lỗi gì và chứng nhận lại. cảm ơn bạn.
Asesha George

Tôi tìm thấy TargetSdkVersion No Longer Supported: Google Play requires that apps target API level 26 or higher.trong nhật ký của mình, tức là không thể đặt targetSdkVersion25.
Fruit

6

Vấn đề của tôi là một bản dịch bị thiếu. Tôi đã có một tệp cài đặt không được dịch vì nó không cần thiết, vì vậy tôi phải thêm "translitable =" false "vào chuỗi:

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

4

Như nhiều người đã đề xuất, tốt hơn hết là bạn nên thử và sửa lỗi từ nguồn. kiểm tra tập tin được tạo ra

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

đọc tệp và bạn sẽ được hướng dẫn nơi lỗi xuất phát. Kiểm tra của tôi: lỗi đến từ ràng buộc xem không đúng.


4

Giải quyết vấn đề này bằng cách sử dụng tệp này trong tệp build.gradle (ứng dụng) Bên trong Android chính {bên trong}

  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

Hãy thử mã dưới đây

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

3

nhập mô tả hình ảnh ở đây

Thêm cái này vào trong android {} build.gradle (Module: Ứng dụng)

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 -> tài liệu tham khảo -> Android-> kiểm tra lỗi lint.

un tick Chạy đầy đủ lỗi .......

nhập mô tả hình ảnh ở đây


1
Rất đẹp, nhưng cửa sổ này từ đâu xin vui lòng? Tôi không thể tìm thấy nó trong Android Studio ...
Martin Zaske

2

Chuyển đến build.gradle (Module: ứng dụng)

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
}

1

Xóa câu lệnh đó khỏi bảng kê khai của bạn hoàn toàn, Eclipse sẽ xử lý việc đó cho bạn một cách nhanh chóng.


0

Bạn nên thêm mã trong tệp lớp cấp dự án để tạo apk ghi đè lỗi.


0

Trong trường hợp của tôi, sự cố liên quan đến cấp API mục tiêu tối thiểu được Google Play yêu cầu. Nó được đặt ít hơn 26.

Sự cố biến mất khi tôi đặt mức API mục tiêu tối thiểu thành 26.


0
    lintOptions {
      checkReleaseBuilds false
      abortOnError false
    }

Đoạn mã trên có thể khắc phục sự cố bằng cách bỏ qua nó, nhưng nó cũng có thể dẫn đến sự cố ứng dụng.

Câu trả lời tốt là trong liên kết sau:

Lỗi khi tạo apk đã ký


-2

Nếu bạn thêm vào app.gradle trong Android {

lintOptions {

    quiet true
    abortOnError false
}

}

Nó sẽ làm việc


Tôi nghĩ tốt hơn là nên sửa lỗi và lỗi, nếu có thể, thay vì bỏ qua kiểm tra
Piero
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.