我的Android项目有两个模块:
app
common
在 settings.gradle 中:
rootProject.name='My project'
include ':app'
include ':common'
In my build.
implementation project(':common')
在通用包中,我有 StringUtil.kt,下一个扩展函数是:
fun String.isEmailValid(): Boolean {
return !TextUtils.isEmpty(this) && android.util.Patterns.EMAIL_ADDRESS.matcher(this).matches()
}
在this类中,我可以像这样使用扩展函数:
val str = ""
str.isEmailValid()
但是在app
模块中I有类
class RegistrationViewModel(application: Application) : AndroidViewModel(application) {
fun doClickRegistration(email: String?, password: String?, retypePassword: String?) {
val str = ""
str.isEmailValid()
}
}
但现在我得到编译错误:
未解析的引用:isEmailValid
2条答案
按热度按时间axr492tv1#
如果没有指定任何可见性修饰符,则默认使用public,这意味着您的声明将在任何地方可见;(资料来源)
由于您没有向
isEmailValid
添加任何可见性修改器,因此它被视为public
。请注意,必须导入扩展函数。
pxyaymoc2#
在您的应用程序
build.gradle
中添加以下内容: