For some reason AppCompatActivity doesn't recognize registerForActivityResult.
The weird thing is that AppCompatActivity is defined as an extension of FragmentActivity which in turn extends ComponentActivity.
Now, ComponentActivity does have the method registerForActivityResult.
From what I can see, it seems that AppCompatActivity is somehow extending an old version of FragmentActivity (from fragment-1.0.0) which, in turn, extends an old version of ComponentActivity (from core-1.0.0).
However, if I use ComponentActivity or FragmentActivity directly it uses the right one.
I am guessing it is something in my build.gradle file:
implementation fileTree(include: ['*.jar', '*.aar'], dir: 'libs')
implementation 'androidx.appcompat:appcompat:1.6.1'
testImplementation 'junit:junit:4.13.2'
androidTestImplementation 'junit:junit:4.13.2'
androidTestImplementation 'androidx.test.ext:junit:1.1.5'
implementation "androidx.multidex:multidex:2.0.1"
implementation "androidx.core:core-ktx:1.12.0"
implementation "com.google.firebase:firebase-analytics:21.4.0"
implementation "com.google.firebase:firebase-messaging:23.3.0"
implementation 'androidx.cardview:cardview:1.0.0'
implementation 'com.google.android.material:material:1.10.0'
implementation 'androidx.gridlayout:gridlayout:1.0.0'
implementation 'com.google.firebase:firebase-crashlytics:18.5.0'
implementation 'com.google.firebase:firebase-analytics:21.4.0'
implementation("androidx.datastore:datastore-preferences:1.0.0")
// optional - RxJava2 support
implementation("androidx.datastore:datastore-preferences-rxjava2:1.0.0")
// optional - RxJava3 support
implementation("androidx.datastore:datastore-preferences-rxjava3:1.0.0")
implementation project(':WeFiUiLibs')
implementation project(':WeFiUtil')
implementation "com.github.PhilJay:MPAndroidChart:v3.1.0"
implementation("io.insert-koin:koin-core:3.5.0")
implementation("io.insert-koin:koin-android:3.5.0")
implementation 'com.jakewharton.timber:timber:5.0.1'
implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
implementation 'androidx.navigation:navigation-ui-ktx:2.7.4'
implementation("androidx.activity:activity-ktx:1.8.0")
The result is the same whether I leave the appcompat line in or remove it.
Edit:
I did a full dependencies list and got the following line in several places:
androidx.fragment:fragment:1.0.0 -> 1.3.6 (*)
I'm guessing that that's okay and is saying that 1.0.0 is being replaced by 1.3.6 though I have no idea what (*) means.