署名されたapkの生成時の「:app:lintVitalRelease」エラー


238

Google PlayでAPKをアップロードしようとしたところ、「デバッグ可能なAPKをアップロードしました。セキュリティ上の理由から、Google Playで公開する前にデバッグを無効にする必要があります。デバッグ可能なAPKの詳細をご覧ください。」というエラーメッセージが表示されました。

その後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は何が問題なのかについての情報を表示しません...誰もがエラーを無視せずにこれを修正することができましたか?
フェデリコアルバレス

stackoverflow.com/questions/43203415/…回答についてはこのページにアクセスしてください。私のためにその作業
ハリムBezek

5
「しかし、問題を見つけて修正するのはどうですか?」私は同じことを考えましたが、下部バーの「検査結果」タブとbuild \ reportフォルダーの内容を常に見落としました。チェックしてください。
PravyNandas

1
ビルド/レポートフォルダーは非常に良いヒントです。私にとって問題は翻訳の欠落であり、htmlレポートから明らかでした。
ピート

エラーグーグルであなたに解決策を与えてください、なぜあなたはこれを試さなかったのですか???? 最初にエラーとエラーメッセージを理解しよう
Mafujul

回答:


393

リントチェックをオフにすることはお勧めしません。理由はそこにあります。代わりに、エラーを確認して修正してください。

エラーレポートはに保存され[app module]/build/reports/lint-results-yourBuildName-fatal.htmlます。このファイルをブラウザで開いて、エラーについて読むことができます。

エラーレポートが生成される場所をGradleがもう少し明確にできると便利です。


8
同意し、エラーを修正する方がはるかに良いです!gradlew lintIDEを使用して、またはIDEを介して手動でレポートを生成することもできます
。developer.android.com/ studio / write / lintを

3
はい、正しい方向です。さらに、htmlのエラーレポートはよく説明されており、エラーは問題なく処理されたので、簡単に修正しました。
CodeToLife 2018年

6
はい、それは言ってfix the issues identified by lintも非常に迷惑ですが、実際にはそれらのエラーやレポートへのパスは表示されません...
user25

7
これは受け入れられた答えでなければなりません。lintを無効にすることは良い解決策ではありません。
slhddn

1
私の場合、エラーはMissingTranslation: Incomplete translation-Googleへの質問:なぜAndroid Studioに表示されないのですか?それintegrated development environmentは理由のために呼ばれています。
誰かどこか

187

私はこの問題を抱えていて、次のように追加して解決しました:

lintOptions { 

    checkReleaseBuilds false

}

セクションbuild.gradle内の私のファイルにandroid{ }。       


これはアプリケーションに他の副作用はありませんか?
committedandroider

10
いいえ、lintをオフにしてもアプリケーションに副作用はありません。Lintはコード分析ツールであり、デバッグ可能なプロパティの設定が原因で発生する、ここで説明するエラーは、build / outputsフォルダーの「lint-results-release-fatal.html」ファイルで詳細に確認できます。
エラー1337

トップレベルのbuild.gradeファイルにandroid {}セクションを追加する際に問題がありました。したがって、他のいくつかのアドバイスに従い、これをアプリのレベルでbuild.gradeファイルに追加しました。つまり、androidセクションがすでに存在する1つ下のフォルダーです。
Martin Zaske 2017

13
警告:これはlintチェックを無効にするだけです。エラーを無効にする前に、少なくともエラーを確認することをお勧めします。私の場合、それらは特定の言語のいくつかの欠落した文字列に関するものでした。「分析」->「コードの検査..」
Markus

2
これはお勧めしません。私の場合、これらの警告を無視すると、リソースの不足により実行時にクラッシュが発生します。lint-results-release-fatal.htmlを確認し、すべての問題を修正してください。
パヴェルNadolski

76

正確なエラーを確認する場合は、プロジェクトの次のパスに移動します:/app/build/reports/lint-results-release-fatal.html(または.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ファイルを見た後、文字通り数秒で問題が解決しました。
ローマンローゼンシュタイン

50

すべてのstring.xmlファイルですべての翻訳を定義したことを確認してください


1
それが私の問題でした....不足している翻訳を追加して問題を修正してくださいありがとう
Hatem Badawi

一部の翻訳が欠けていました。
Himanshu Rawat

40

問題の場所を見つけようとしている可能性がある場合は、私のプロジェクトの次のパスで見つけました:/app/build/reports/lint-results-release-fatal.html(または.xml)。

お役に立てれば!


どちらもファイルは空です。
m9m9m

35

Android Studioから署名済みAPKを作成するときに同じ問題に直面しました。私はandroid {}内のbuild.gradleファイルで少し変更を加えます

lintOptions {
        checkReleaseBuilds false
        abortOnError false
    }

これでうまくいきました。同様の問題がありました。タスク ':app:lint *** Release'の実行に失敗しました。> org.picocontainer.MutablePicoContainer.registerComponentInstance(Ljava / lang / Object;)Lorg / picocontainer / ComponentAdapter;
ネルソンラミレス

24

エラーの詳細を見つける方法

Anylyze->コードの検査

ここに画像の説明を入力してください

次に、検査結果にエラーが表示されます

ここに画像の説明を入力してください

私の場合、Google IAPで未解決のjavadoc参照が原因でビルドが失敗しました😐


3
これは受け入れられる答えになるはずです。リントチェックを無効にすることを提案したすべての人にとって、これは単なる回避策です。エラーをスキップするよりも、エラーを修正する方が適切です。lintチェックのスキップは、非常に特殊なケースでのみ行う必要があり、常に行う必要はありません。繰り返しますが、ほとんどまたはまったく行わないでください。
Archie G.Quiñones19年

20
***Try this***

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

18

あなたはgradleビルドタブからアセンブルを選択するより多くの情報を見つけることができます:ここに画像の説明を入力してください


5
これが実際の答えです。アプリのアセンブルに移動し、gradleウィンドウでダブルクリックして実行すると、Androidスタジオが何をポップしていたかを正確に伝えます。
ワジッドアリ2018

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

app.gradleファイルで次の3行を試してください。

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

こんにちはGuysこれは私のために働いた、私はこのように私の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

多くの人が示唆しているように、ソースからのエラーを試行して修正することは常に優れています。lintで生成されたファイルを確認する

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

ファイルを読み取ると、エラーの原因が表示されます。私のチェックアウト:エラーは不適切なビューの制約から発生しました。


4

この問題を解決するbuild.gradle(アプリ)のthisを使用してメインAndroid内{ファイル}

  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(Module:App)内に追加します

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-> lintエラーチェック。

un run run full error .......のチェックを外します。

ここに画像の説明を入力してください


1
とてもきれいですが、この窓はどこから来てください。Android Studioでは見つかりませんでした...
Martin Zaske

2

build.gradle(Module:app)に移動します

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

エラーを上書きするapkを生成するには、プロジェクトレベルのGradleファイルにコードを追加する必要があります


0

私の場合、問題はGoogle Playが必要とする最小ターゲットAPIレベルに関連していました。26未満に設定されました。

最小ターゲットAPIレベルを26に設定すると、問題が消えました。


0
    lintOptions {
      checkReleaseBuilds false
      abortOnError false
    }

上記のコードは無視して問題を修正できますが、アプリがクラッシュする可能性もあります。

良い答えは次のリンクにあります:

署名済みAPKの生成時のエラー


-2

Androidでapp.gradleを追加した場合{

lintOptions {

    quiet true
    abortOnError false
}

}

それは仕事を得ます


チェックをスキップするよりも、可能であればリントやエラーを修正する方がよいと思います
ピエロ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.