エラーが発生した時の状況
ビルドバリアントが4つ設定されていた。
- freeDebug
- paidDebug
- freeRelease
- paidRelease
freeRelease
を選択した状態で、Run 'ExampleScreenPreview' を実行した。
次のウィンドウが表示された。
Fixをクリックした。
Select Signing Configウィンドウで、debugを選択し、OKをクリックした。
そして、Runをクリックした。
今思い返すと、この操作が今回のエラーを発生させた原因かと思われる。
ここで行うべきだった操作については、こちらの記事でまとめてある。
この操作の後に、Active Build VariantをpaidReleaseに切り替えてみた。
Buildにエラーが表示された。
removeContentEntry: removed content entry url 'file:///Users/takagimeow/AndroidStudioProjects/xxx-xxx-xxx/app/src/freeRelease' still exists after removing
エラーを解決した手順
エラーを解決したというよりか、エラーを発生させなくした手順について紹介する。
もしかしたら、読者の環境によっては参考にならないかもしれないが、あくまで参考程度に読んでほしい。
-
main以外の各ビルドバリアントのパッケージをすべて削除する
- freeReleaseディレクトリやpaidReleaseディレクトリなどを削除する。
-
.ideaディレクトリを削除する
-
Android Studioのウィンドウを閉じる。そして、再度プロジェクトを開く
-
build.gradleのbuildTypesやproductFlavorsの内容を元に戻す
- buildTypesの内容をプロジェクト作成時と同じreleaseビルドタイプのみにする
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.debug
}
}
- Android StudioのSync Project with Gradle Filesをクリックして同期する。
- build.gradleの内容を修正して、もう一度productFlavorsなどを追加する。
flavorDimensions "plan"
productFlavors {
paid {
dimension "plan"
}
free {
dimension "plan"
}
}
- もう一度、Android StudioのSync Project with Gradle Filesをクリックして同期する。
この手順を実行したあとに、Active Build Variantを切り替えた。
BUILD SUCCESSFUL
がBuild部分に表示されてエラーは消えた。