implementation("androidx.core:core-ktx:1.1.0-alpha04")
implementation ("androidx.appcompat:appcompat:1.0.2")
implementation ("androidx.activity:activity-ktx:1.0.0-alpha05")
I was also looking at this Why are their 2 different ComponentActivity classes? I have this library setup and hoping to use OnBackPressedCallback
import android.os.Bundle
import androidx.activity.OnBackPressedCallback
import androidx.fragment.app.Fragment
open class BaseNiceFragment : Fragment(), OnBackPressedCallback {
override fun handleOnBackPressed(): Boolean {
// do some nice things here
return true
}
override fun onActivityCreated(savedInstanceState: Bundle?) {
super.onActivityCreated(savedInstanceState)
activity!!.addOnBackPressedCallback(viewLifecycleOwner, this)
}
override fun onDestroyView() {
super.onDestroyView()
activity!!.removeOnBackPressedCallback(this)
}
protected open fun handleEmptyView(isListEmpty: Boolean) {}
}
It works fine with debug builds with Android Studio but whenever I try to do a app:compileFullReleaseKotlin
, I keep running into the following issues
BaseNiceFragment.kt: (_, _): Unresolved reference: OnBackPressedCallback
Anyone or Ian know how to make sure this is included in all of my builds
public interface OnBackPressedCallback {
//...
}
You're mixing stable releases (
appcompat:1.0.2
and thefragment:1.0.0
it depends on) with alpha releases. Only Fragment1.1.0
alpha versions ofFragmentActivity
depend onandroidx.activity
'sComponentActivity
and therefore include theaddOnBackPressedCallback
method.You need to specifically include
androidx.fragment:fragment:1.1.0-alpha05
or switch your AppCompat dependency toandroidx.appcompat:appcompat:1.1.0-alpha03
(which transitively depends on Fragment1.1.0-alpha05
).