Fixed
Status Update
Comments
ap...@google.com <ap...@google.com> #2
Seems to be a DNS problem with systems that have 'obtain DNS server address automatically'. Changed my system to a manual setting and the browser etc now work. SDK 2.2 didn't seem to mind the auto setting though.
ap...@google.com <ap...@google.com> #3
Could you please describe how/where you changed your system to a manual setting?
ap...@google.com <ap...@google.com> #4
Based on its date, this issue was originally reported before Android 2.3. Because of the many changes that existed in Android 4.x compared to previous versions, it's very likely that this issue doesn't exist in recent versions of Android like 4.2.2 or newer. Because of the high likelihood that this issue is obsolete, it is getting closed automatically by a script, without a human looking at it in detail. If the issue still exists on a Nexus 4 or Nexus 7 running Android 4.2.2 and is not related to Google applications, please open a new report accordingly.
ap...@google.com <ap...@google.com> #5
java.lang.IllegalArgumentException: Unable to locate adb
at com.android.tools.idea.run.editor.DeployTargetPickerDialog.<init>(DeployTargetPickerDialog.java:144)
at com.android.tools.idea.run.editor.ShowChooserTargetProvider.showPrompt(ShowChooserTargetProvider.java:113)
at com.android.tools.idea.run.AndroidRunConfigurationBase.getDeployTarget(AndroidRunConfigurationBase.java:600)
at com.android.tools.idea.run.AndroidRunConfigurationBase.doGetState(AndroidRunConfigurationBase.java:281)
at com.android.tools.idea.run.AndroidRunConfigurationBase.getState(AndroidRunConfigurationBase.java:241)
at com.intellij.execution.runners.ExecutionEnvironment.getState(ExecutionEnvironment.java:158)
at com.intellij.execution.runners.BaseProgramRunner.execute(BaseProgramRunner.java:55)
at com.intellij.execution.runners.BaseProgramRunner.execute(BaseProgramRunner.java:50)
at com.intellij.execution.ProgramRunnerUtil.executeConfigurationAsync(ProgramRunnerUtil.java:92)
at com.intellij.execution.ProgramRunnerUtil.executeConfiguration(ProgramRunnerUtil.java:41)
at com.intellij.execution.impl.ExecutionManagerImpl.restart(ExecutionManagerImpl.java:93)
at com.intellij.execution.impl.ExecutionManagerImpl.access$300(ExecutionManagerImpl.java:44)
at com.intellij.execution.impl.ExecutionManagerImpl$3.run(ExecutionManagerImpl.java:442)
at com.intellij.util.concurrency.QueueProcessor.runSafely(QueueProcessor.java:232)
at com.intellij.util.Alarm$Request.runSafely(Alarm.java:356)
at com.intellij.util.Alarm$Request.run(Alarm.java:343)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at com.intellij.util.concurrency.SchedulingWrapper$MyScheduledFutureTask.run(SchedulingWrapper.java:228)
at com.intellij.openapi.application.TransactionGuardImpl$2.run(TransactionGuardImpl.java:315)
at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.doRun(LaterInvocator.java:435)
at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.runNextEvent(LaterInvocator.java:419)
at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.run(LaterInvocator.java:403)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:762)
at java.awt.EventQueue.access$500(EventQueue.java:98)
at java.awt.EventQueue$3.run(EventQueue.java:715)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:732)
at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:755)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:704)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:391)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
at com.android.tools.idea.run.editor.DeployTargetPickerDialog.<init>(DeployTargetPickerDialog.java:144)
at com.android.tools.idea.run.editor.ShowChooserTargetProvider.showPrompt(ShowChooserTargetProvider.java:113)
at com.android.tools.idea.run.AndroidRunConfigurationBase.getDeployTarget(AndroidRunConfigurationBase.java:600)
at com.android.tools.idea.run.AndroidRunConfigurationBase.doGetState(AndroidRunConfigurationBase.java:281)
at com.android.tools.idea.run.AndroidRunConfigurationBase.getState(AndroidRunConfigurationBase.java:241)
at com.intellij.execution.runners.ExecutionEnvironment.getState(ExecutionEnvironment.java:158)
at com.intellij.execution.runners.BaseProgramRunner.execute(BaseProgramRunner.java:55)
at com.intellij.execution.runners.BaseProgramRunner.execute(BaseProgramRunner.java:50)
at com.intellij.execution.ProgramRunnerUtil.executeConfigurationAsync(ProgramRunnerUtil.java:92)
at com.intellij.execution.ProgramRunnerUtil.executeConfiguration(ProgramRunnerUtil.java:41)
at com.intellij.execution.impl.ExecutionManagerImpl.restart(ExecutionManagerImpl.java:93)
at com.intellij.execution.impl.ExecutionManagerImpl.access$300(ExecutionManagerImpl.java:44)
at com.intellij.execution.impl.ExecutionManagerImpl$3.run(ExecutionManagerImpl.java:442)
at com.intellij.util.concurrency.QueueProcessor.runSafely(QueueProcessor.java:232)
at com.intellij.util.Alarm$Request.runSafely(Alarm.java:356)
at com.intellij.util.Alarm$Request.run(Alarm.java:343)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at com.intellij.util.concurrency.SchedulingWrapper$MyScheduledFutureTask.run(SchedulingWrapper.java:228)
at com.intellij.openapi.application.TransactionGuardImpl$2.run(TransactionGuardImpl.java:315)
at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.doRun(LaterInvocator.java:435)
at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.runNextEvent(LaterInvocator.java:419)
at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.run(LaterInvocator.java:403)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:762)
at java.awt.EventQueue.access$500(EventQueue.java:98)
at java.awt.EventQueue$3.run(EventQueue.java:715)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:732)
at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:755)
at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:704)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:391)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
ap...@google.com <ap...@google.com> #6
voilà ce qu'on m'affiche lorsque j’exécute mon programme
ap...@google.com <ap...@google.com> #7
je ne vois pas comment résoudre ce problème. svp aidez moi
ap...@google.com <ap...@google.com> #8
Project: platform/frameworks/support
Branch: androidx-master-dev
commit 55a7eabab4c4b81efaf146626a34e5014fd8081c
Author: jbwoods <jbwoods@google.com>
Date: Thu Apr 18 13:18:18 2019
Change max lifecycle state in BackStackState to ordinal
Saving the max lifecycle state as an int array instead of an array list
of strings.
Also renamed mLifecycleStates to mMaxLifecycleStates
Test: all test pass
BUG: 129780800
Change-Id: Ie91d4b6fd22f202cfcc0847791643821808deb78
M fragment/src/androidTest/java/androidx/fragment/app/BackStackStateTest.kt
M fragment/src/main/java/androidx/fragment/app/BackStackState.java
https://android-review.googlesource.com/947562
https://goto.google.com/android-sha1/55a7eabab4c4b81efaf146626a34e5014fd8081c
Branch: androidx-master-dev
commit 55a7eabab4c4b81efaf146626a34e5014fd8081c
Author: jbwoods <jbwoods@google.com>
Date: Thu Apr 18 13:18:18 2019
Change max lifecycle state in BackStackState to ordinal
Saving the max lifecycle state as an int array instead of an array list
of strings.
Also renamed mLifecycleStates to mMaxLifecycleStates
Test: all test pass
BUG: 129780800
Change-Id: Ie91d4b6fd22f202cfcc0847791643821808deb78
M fragment/src/androidTest/java/androidx/fragment/app/BackStackStateTest.kt
M fragment/src/main/java/androidx/fragment/app/BackStackState.java
ap...@google.com <ap...@google.com> #9
Project: platform/frameworks/support
Branch: androidx-master-dev
commit ee8763ef15a9aeb37e9b5afed55a1e8b05c2ad55
Author: jbwoods <jbwoods@google.com>
Date: Fri Apr 19 15:13:20 2019
SetUserVisibleHint on current PrimaryItem instead of new one
setUserVisibleHint() was being called on the wrong fragment. It was
being called on the fragment that would no longer be the primary.
Test: Ran in support v7
BUG: 129780800
Change-Id: I79c4e907a3ad1c747f6c865951ef15943c5d20ce
M fragment/src/main/java/androidx/fragment/app/FragmentPagerAdapter.java
M fragment/src/main/java/androidx/fragment/app/FragmentStatePagerAdapter.java
https://android-review.googlesource.com/948717
https://goto.google.com/android-sha1/ee8763ef15a9aeb37e9b5afed55a1e8b05c2ad55
Branch: androidx-master-dev
commit ee8763ef15a9aeb37e9b5afed55a1e8b05c2ad55
Author: jbwoods <jbwoods@google.com>
Date: Fri Apr 19 15:13:20 2019
SetUserVisibleHint on current PrimaryItem instead of new one
setUserVisibleHint() was being called on the wrong fragment. It was
being called on the fragment that would no longer be the primary.
Test: Ran in support v7
BUG: 129780800
Change-Id: I79c4e907a3ad1c747f6c865951ef15943c5d20ce
M fragment/src/main/java/androidx/fragment/app/FragmentPagerAdapter.java
M fragment/src/main/java/androidx/fragment/app/FragmentStatePagerAdapter.java
ap...@google.com <ap...@google.com> #10
Project: platform/frameworks/support
Branch: androidx-master-dev
commit a3a06d11f42afb5d4f891a71046d49fcca387576
Author: jbwoods <jbwoods@google.com>
Date: Mon Apr 22 15:21:06 2019
Use IntDef instead of boolean in FragmentPagerAdapter
Deprecated the orignal constructors for FragmentPagerAdapter and
FragmentStatePagerAdapter to encourage developers to use the new
constructor that allows the behavior of only allowing the current
fragment to be in a RESUMED state.
Changed the new constructor to take an IntDef instead of a boolean so
that the intended behavior is clear. Passing in
USE_SET_USER_VISIBLE_HINT uses the old behavior and passing
RESUME_ONLY_CURRENT_FRAGMENT uses the new behavior.
Test: support v4 demo, support v7 demo, ./gradlew checkApi
BUG: 129780800
Change-Id: Ie2fcf318424fd4037ff6c541ba5a6e901c97fc5b
M fragment/api/1.1.0-alpha07.txt
M fragment/api/current.txt
M fragment/src/main/java/androidx/fragment/app/FragmentPagerAdapter.java
M fragment/src/main/java/androidx/fragment/app/FragmentStatePagerAdapter.java
M samples/Support4Demos/src/main/java/com/example/android/supportv4/app/FragmentPagerSupport.java
M samples/Support4Demos/src/main/java/com/example/android/supportv4/app/FragmentStatePagerSupport.java
M samples/Support7Demos/src/main/java/com/example/android/supportv7/app/ToolbarFragmentPagerMenu.java
https://android-review.googlesource.com/948733
https://goto.google.com/android-sha1/a3a06d11f42afb5d4f891a71046d49fcca387576
Branch: androidx-master-dev
commit a3a06d11f42afb5d4f891a71046d49fcca387576
Author: jbwoods <jbwoods@google.com>
Date: Mon Apr 22 15:21:06 2019
Use IntDef instead of boolean in FragmentPagerAdapter
Deprecated the orignal constructors for FragmentPagerAdapter and
FragmentStatePagerAdapter to encourage developers to use the new
constructor that allows the behavior of only allowing the current
fragment to be in a RESUMED state.
Changed the new constructor to take an IntDef instead of a boolean so
that the intended behavior is clear. Passing in
USE_SET_USER_VISIBLE_HINT uses the old behavior and passing
RESUME_ONLY_CURRENT_FRAGMENT uses the new behavior.
Test: support v4 demo, support v7 demo, ./gradlew checkApi
BUG: 129780800
Change-Id: Ie2fcf318424fd4037ff6c541ba5a6e901c97fc5b
M fragment/api/1.1.0-alpha07.txt
M fragment/api/current.txt
M fragment/src/main/java/androidx/fragment/app/FragmentPagerAdapter.java
M fragment/src/main/java/androidx/fragment/app/FragmentStatePagerAdapter.java
M samples/Support4Demos/src/main/java/com/example/android/supportv4/app/FragmentPagerSupport.java
M samples/Support4Demos/src/main/java/com/example/android/supportv4/app/FragmentStatePagerSupport.java
M samples/Support7Demos/src/main/java/com/example/android/supportv7/app/ToolbarFragmentPagerMenu.java
ap...@google.com <ap...@google.com> #11
Project: platform/frameworks/support
Branch: androidx-master-dev
commit f78c4e5094bcc35546c177e2360e90b0b6316ed9
Author: jbwoods <jbwoods@google.com>
Date: Mon Apr 22 15:32:10 2019
Call setMaxLifecycle() after add() in FragmentStatePagerAdapter
SetMaxLifecycle() must be called after add() or an
IllegalArgumentException will be called because the fragment is not yet
attached to the FragmentManager.
In instantiateItem(), if used, the call the setUserVisibleHint() will still
happen before the fragment is added. If only the current fragment is resumed,
setMaxLifecycle() will be called after add().
Test: support v4 app
BUG: 129780800
Change-Id: Ic3406fcb83554ba94e270f8cffd8acacf3a2da4f
M fragment/src/main/java/androidx/fragment/app/FragmentStatePagerAdapter.java
M samples/Support4Demos/src/main/java/com/example/android/supportv4/app/FragmentStatePagerSupport.java
https://android-review.googlesource.com/948732
https://goto.google.com/android-sha1/f78c4e5094bcc35546c177e2360e90b0b6316ed9
Branch: androidx-master-dev
commit f78c4e5094bcc35546c177e2360e90b0b6316ed9
Author: jbwoods <jbwoods@google.com>
Date: Mon Apr 22 15:32:10 2019
Call setMaxLifecycle() after add() in FragmentStatePagerAdapter
SetMaxLifecycle() must be called after add() or an
IllegalArgumentException will be called because the fragment is not yet
attached to the FragmentManager.
In instantiateItem(), if used, the call the setUserVisibleHint() will still
happen before the fragment is added. If only the current fragment is resumed,
setMaxLifecycle() will be called after add().
Test: support v4 app
BUG: 129780800
Change-Id: Ic3406fcb83554ba94e270f8cffd8acacf3a2da4f
M fragment/src/main/java/androidx/fragment/app/FragmentStatePagerAdapter.java
M samples/Support4Demos/src/main/java/com/example/android/supportv4/app/FragmentStatePagerSupport.java
jb...@google.com <jb...@google.com> #12
This has been added internally and will be available in Fragments 1.0.0-alpha07.
zh...@gmail.com <zh...@gmail.com> #14
While you're at it, can you rename `getItem(int position)` to `createFragment(int position)`? It's a very common source of bugs.
ma...@gmail.com <ma...@gmail.com> #15
Shouldn't non-visible fragments also be stopped, not just paused?
Fragment docs mention that fragment is started when it is visible to the user. If fragment is completely hidden, then it should be stopped, right?
Fragment docs mention that fragment is started when it is visible to the user. If fragment is completely hidden, then it should be stopped, right?
il...@google.com <il...@google.com> #16
Re #15 - that is not possible for FragmentPagerAdapter/FragmentStatePagerAdapter since ViewPager supports margins (i.e., the offscreen pages *are* partially visible), among other complications.
In a non-ViewPager context, setMaxLifecycle() certainly supports stopping Fragments.
In a non-ViewPager context, setMaxLifecycle() certainly supports stopping Fragments.
wy...@gmail.com <wy...@gmail.com> #17
I use FragmentVPAdapter with 4 fragments, and there are their life logs, two of them had called onResume , but fragment2 called onPause after onResume:
onAttach 1
onCreate 1
onAttach 2
onCreate 2
onCreateView 1
onActivityCreated 1
onStart 1
onResume 1
onPause 1
onCreateView 2
onActivityCreated 2
onStart 2
onResume 2
onPause 2
onResume 1
```
mViewpager = findViewById(R.id.viewpager)
val adapter = FragmentVPAdapter(supportFragmentManager,RESUME_ONLY_CURRENT_FRAGMENT)
mViewpager.adapter = adapter
class FragmentVPAdapter(
fragmentManager: FragmentManager, @Behavior behavior: Int
) : FragmentStatePagerAdapter(
fragmentManager, behavior
) {
val fragments = listOf<Fragment>(
MyFragment.newInstance(1),
MyFragment.newInstance(2),
MyFragment.newInstance(3),
MyFragment.newInstance(4)
)
override fun getItem(position: Int): Fragment {
return fragments[position]
}
override fun getCount(): Int {
return fragments.size
}
}
onAttach 1
onCreate 1
onAttach 2
onCreate 2
onCreateView 1
onActivityCreated 1
onStart 1
onResume 1
onPause 1
onCreateView 2
onActivityCreated 2
onStart 2
onResume 2
onPause 2
onResume 1
```
mViewpager = findViewById(R.id.viewpager)
val adapter = FragmentVPAdapter(supportFragmentManager,RESUME_ONLY_CURRENT_FRAGMENT)
mViewpager.adapter = adapter
class FragmentVPAdapter(
fragmentManager: FragmentManager, @Behavior behavior: Int
) : FragmentStatePagerAdapter(
fragmentManager, behavior
) {
val fragments = listOf<Fragment>(
MyFragment.newInstance(1),
MyFragment.newInstance(2),
MyFragment.newInstance(3),
MyFragment.newInstance(4)
)
override fun getItem(position: Int): Fragment {
return fragments[position]
}
override fun getCount(): Int {
return fragments.size
}
}
il...@google.com <il...@google.com> #18
Re #17 - please file new issues, rather than tacking issues onto already closed issues. In your case, I believe your issue is already covered by https://issuetracker.google.com/issues/131557151
Description
Version used: 1.1.0-alpha05
There's a number of cases where Fragments should be capped at a lower Lifecycle than the FragmentManager/Activity. For example, off screen pages of a ViewPager shouldn't be resumed.
Ideally, this would be something you could do as part of a FragmentTransaction via an API like:
supportFragmentManager.beginTransaction()
.setMaxLifecycle(fragment, Lifecycle.State.STARTED)
.commit()
Setting the max lifecycle back to Lifecycle.State.RESUMED would effectively remove the restriction (since that's the highest lifecycle state).
This should allow the deprecation of the setUserVisibleHint() API.