Fixed
Status Update
Comments
uc...@google.com <uc...@google.com> #2
Can you please share a sample project to reproduce this issue.
sh...@gmail.com <sh...@gmail.com> #3
Sure. Please see the enclosed.
As mentioned, please click on the FAB to launch the Settings Activity...
Thank you.
As mentioned, please click on the FAB to launch the Settings Activity...
Thank you.
uc...@google.com <uc...@google.com> #4
Not reproduced, can you please share logcat error log.
sh...@gmail.com <sh...@gmail.com> #5
Sure. If you need more from the LogCat, please advise. Thanks.
--------- beginning of crash
2019-07-19 02:04:47.849 12174-12174/com.example.settingsfragmenttest E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.settingsfragmenttest, PID: 12174
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.settingsfragmenttest/com.example.settingsfragmenttest.SettingsActivity}: java.lang.IllegalStateException: Target fragment must implement TargetFragment interface
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3260)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3396)
at android.app.ActivityThread.handleRelaunchActivityInner(ActivityThread.java:5264)
at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:5172)
at android.app.servertransaction.ActivityRelaunchItem.execute(ActivityRelaunchItem.java:69)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2009)
at android.os.Handler.dispatchMessage(Handler.java:107)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:7319)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:934)
Caused by: java.lang.IllegalStateException: Target fragment must implement TargetFragment interface
at androidx.preference.PreferenceDialogFragmentCompat.onCreate(PreferenceDialogFragmentCompat.java:81)
at androidx.preference.EditTextPreferenceDialogFragmentCompat.onCreate(EditTextPreferenceDialogFragmentCompat.java:47)
at androidx.fragment.app.Fragment.performCreate(Fragment.java:2581)
at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManagerImpl.java:838)
at androidx.fragment.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManagerImpl.java:1238)
at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManagerImpl.java:1303)
at androidx.fragment.app.FragmentManagerImpl.dispatchStateChange(FragmentManagerImpl.java:2656)
at androidx.fragment.app.FragmentManagerImpl.dispatchCreate(FragmentManagerImpl.java:2604)
at androidx.fragment.app.FragmentController.dispatchCreate(FragmentController.java:235)
at androidx.fragment.app.FragmentActivity.onCreate(FragmentActivity.java:316)
at androidx.appcompat.app.AppCompatActivity.onCreate(AppCompatActivity.java:106)
at com.example.settingsfragmenttest.SettingsActivity.onCreate(SettingsActivity.java:15)
at android.app.Activity.performCreate(Activity.java:7783)
at android.app.Activity.performCreate(Activity.java:7772)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1299)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3235)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3396)
at android.app.ActivityThread.handleRelaunchActivityInner(ActivityThread.java:5264)
at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:5172)
at android.app.servertransaction.ActivityRelaunchItem.execute(ActivityRelaunchItem.java:69)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2009)
at android.os.Handler.dispatchMessage(Handler.java:107)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:7319)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:934)
--------- beginning of crash
2019-07-19 02:04:47.849 12174-12174/com.example.settingsfragmenttest E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.settingsfragmenttest, PID: 12174
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.settingsfragmenttest/com.example.settingsfragmenttest.SettingsActivity}: java.lang.IllegalStateException: Target fragment must implement TargetFragment interface
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3260)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3396)
at android.app.ActivityThread.handleRelaunchActivityInner(ActivityThread.java:5264)
at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:5172)
at android.app.servertransaction.ActivityRelaunchItem.execute(ActivityRelaunchItem.java:69)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2009)
at android.os.Handler.dispatchMessage(Handler.java:107)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:7319)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:934)
Caused by: java.lang.IllegalStateException: Target fragment must implement TargetFragment interface
at androidx.preference.PreferenceDialogFragmentCompat.onCreate(PreferenceDialogFragmentCompat.java:81)
at androidx.preference.EditTextPreferenceDialogFragmentCompat.onCreate(EditTextPreferenceDialogFragmentCompat.java:47)
at androidx.fragment.app.Fragment.performCreate(Fragment.java:2581)
at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManagerImpl.java:838)
at androidx.fragment.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManagerImpl.java:1238)
at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManagerImpl.java:1303)
at androidx.fragment.app.FragmentManagerImpl.dispatchStateChange(FragmentManagerImpl.java:2656)
at androidx.fragment.app.FragmentManagerImpl.dispatchCreate(FragmentManagerImpl.java:2604)
at androidx.fragment.app.FragmentController.dispatchCreate(FragmentController.java:235)
at androidx.fragment.app.FragmentActivity.onCreate(FragmentActivity.java:316)
at androidx.appcompat.app.AppCompatActivity.onCreate(AppCompatActivity.java:106)
at com.example.settingsfragmenttest.SettingsActivity.onCreate(SettingsActivity.java:15)
at android.app.Activity.performCreate(Activity.java:7783)
at android.app.Activity.performCreate(Activity.java:7772)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1299)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3235)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3396)
at android.app.ActivityThread.handleRelaunchActivityInner(ActivityThread.java:5264)
at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:5172)
at android.app.servertransaction.ActivityRelaunchItem.execute(ActivityRelaunchItem.java:69)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2009)
at android.os.Handler.dispatchMessage(Handler.java:107)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:7319)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:934)
uc...@google.com <uc...@google.com>
vi...@google.com <vi...@google.com>
vi...@google.com <vi...@google.com> #6
We are unable to reproduce the bug.
Moving to Android Public Tracker > App Development > Jetpack (androidx) > Fragment for further inputs.
Moving to Android Public Tracker > App Development > Jetpack (androidx) > Fragment for further inputs.
il...@google.com <il...@google.com>
lp...@google.com <lp...@google.com> #7
Sorry for the delayed response, the template generated by Studio is incorrect:
In SettingsActivity's onCreate you need to replace:
getSupportFragmentManager()
.beginTransaction()
.replace(R.id.settings, new SettingsFragment())
.commit();
With the following:
if (savedInstanceState == null) {
getSupportFragmentManager()
.beginTransaction()
.replace(R.id.settings, new SettingsFragment())
.commit();
}
This should fix this issue, and any other similar issues with state not being restored correctly. The template will be fixed in a future version of Studio.
In SettingsActivity's onCreate you need to replace:
getSupportFragmentManager()
.beginTransaction()
.replace(R.id.settings, new SettingsFragment())
.commit();
With the following:
if (savedInstanceState == null) {
getSupportFragmentManager()
.beginTransaction()
.replace(R.id.settings, new SettingsFragment())
.commit();
}
This should fix this issue, and any other similar issues with state not being restored correctly. The template will be fixed in a future version of Studio.
Description
AI-183.6156.11.34.5692245, JRE 1.8.0_152-release-1343-b01x64 JetBrains s.r.o, OS Windows 10(amd64) v10.0 , screens 1920x1200, 1200x1920, 2560x1080
Android Gradle Plugin: 3.4.2
Gradle: 5.1.1
NDK: from local.properties: (not specified); latest from SDK: (not found);
LLDB: pinned revision 3.1 not found; latest from SDK: (package not found);
CMake: from local.properties: (not specified); latest from SDK: (not found); from PATH: (not found);
IMPORTANT: Please read
Steps to Reproduce:
1. Create a new project with a Basic Activity
2. Add a library dependency of androidx.preference, latest version as of this writing
shows in build.gradle as: implementation 'androidx.preference:preference:1.1.0-rc01'
3. Add a new Settings Activity
4. In MainActivity's FAB's onClick method, launch the SettingsActivity via Intent and startActivity
5. Run the app on a device in portrait mode and click on the FAB to launch the SettingsActivity
6. Click on any EditTextPreference (probably any DialogPreference, but e.g. Your Signature) and leave it open
7. Rotate the device to landscape orientation which will bring up the expected "exploded" view to enter in text.
8. With or without entering any text, either close the soft keyboard or click Done (still shows the Your Signature dialog either way).
9. Rotate the device back to portrait orientation.
10. App will crash with a java.lang.IllegalStateException: Target fragment must implement TargetFragment interface in the LogCat referencing SettingsActivity.onCreate(SettingsActivity.java:15) which is the call to super.onCreate(savedInstanceState).