エラーが発生した時の状況
build.gradleにあたらしいproductTypeとproductFlavorsを追加した。
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
signingConfig signingConfigs.debug
}
debug {
applicationIdSuffix ".debug"
debuggable true
}
}
flavorDimensions "plan"
productFlavors {
paid {
dimension "plan"
}
free {
dimension "plan"
}
}
freeReleaseとpaidReleaseに同じ名前空間のファイルを作成した。
- freeRelease
- java
- com.takagimeow.example
- feature
- home
- HomeScreen.kt
- paidRelease
- java
- com.takagimeow.example
- feature
- home
- HomeScreen.kt
- main
- java
- com.takagimeow.example
- feature
- home
- HomeScreen.kt
このとき、エディター上に、Conflicting overloads...
というエラーが表示された。
解決した手順
ディレクトリ名をfree
とpaid
に変更した。
開発環境では、AndroidStudioが自動で署名してくれる、debug
ビルドタイプを優先的に使用する。そのため、release
とdebug
の両方に対応するためproductFlavors
の値に合わせたディレクトリ名にする。
- free
- java
- com.takagimeow.example
- feature
- home
- HomeScreen.kt
- paid
- java
- com.takagimeow.example
- feature
- home
- HomeScreen.kt
- main
- java
- com.takagimeow.example
- feature
- home
- HomeScreen.kt
そして、mainに存在する同じコンポーザブルのファイルを削除する。この時、コメントアウトだけでごまかさないようにする。
- free
- java
- com.takagimeow.example
- feature
- home
- HomeScreen.kt
- paid
- java
- com.takagimeow.example
- feature
- home
- HomeScreen.kt
- main
- java
- com.takagimeow.example
- feature
- home
それでも解決しない場合は、.ideaディレクトリを削除するなどをしてみる。
それ以外の方法については、こちらの記事を参照してみてほしい。