aar中的擴展函數不能直接在project中使用,是因爲擴展函數的文件會被變成**kt.class文件。
舉個例子:
Util.kt中有個擴展函數
fun String.getLength(): Int {//kotlin extension function
}
那麼它就會被編譯成UtilKt.class
如果是同一個project下,自然可以直接使用它的擴展函數,但是如果在aar中,你就無法引用了,而kotlin也無法直接使用class文件。
但是我們是清楚的,kotlin是可以直接使用JAVA,而JAVA又恰巧可以引用class文件。
所以我們可以寫一個Java類
class Extension{
public String getLength(string s){
return UtilKt().getLength(s)
}
}
然後在KT文件中使用我們的Extension的實例就可以間接調用擴展函數了。