登录后我可以进行FB查询.几分钟后(玩游戏)Facebook请求失败异常:
java.lang.IllegalStateException: Cannot execute task: the task is already running
Run Code Online (Sandbox Code Playgroud)
我打电话时失败了
Request.executeMeRequestAsync(Session.getActiveSession(),
new Request.GraphUserCallback() {...
Request.executeGraphPathRequestAsync(Session.getActiveSession(),
"me/apprequests", new Request.Callback() {...
Request request = new Request(session, "me/apprequests", null,
null, new Request.Callback() { .... } );
RequestAsyncTask status = request.executeAsync();
Run Code Online (Sandbox Code Playgroud)
登录后立即调用相同的调用,它们可以正常工作.我有一个测试应用程序,它的工作原理.但是在登录后几分钟后的真实应用程序中它无效.
我的应用程序会在许多Android平台(4.1,4.0.4,2.3.6 ......)上报告此问题.但我无法在手机上重现此问题.我已经通过Google搜索了这个问题,但堆栈跟踪似乎与我的不一样.
有人知道问题是怎么回事吗?以及如何预防呢?或者我该如何重现此错误?谢谢.
堆栈跟踪:
java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState
at android.support.v4.app.FragmentManagerImpl.checkStateLoss(FragmentManager.java:1327)
at android.support.v4.app.FragmentManagerImpl.enqueueAction(FragmentManager.java:1338)
at android.support.v4.app.BackStackRecord.commitInternal(BackStackRecord.java:595)
at android.support.v4.app.BackStackRecord.commit(BackStackRecord.java:574)
at android.support.v4.app.FragmentTabHost.onAttachedToWindow(FragmentTabHost.java:278)
at android.view.View.dispatchAttachedToWindow(View.java:12064)
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2707)
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2714)
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2714)
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2714)
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2714)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1339)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1131)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:4611)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:725)
at android.view.Choreographer.doCallbacks(Choreographer.java:555)
at android.view.Choreographer.doFrame(Choreographer.java:525)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:711)
at android.os.Handler.handleCallback(Handler.java:615)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4898)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1008)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:775)
at dalvik.system.NativeStart.main(Native Method)
Run Code Online (Sandbox Code Playgroud)
--------------------编辑--------------------
致乔纳森:
我有两个片段.并且只有一个片段会覆盖onPause回调,代码如下所示.我之后不会覆盖其他回调onPause.我覆盖的另一个回调是onResume回调,代码也如下所示.
分段:
@Override
public …Run Code Online (Sandbox Code Playgroud) 有人可以解释这个异常何时发生?
12-18 11:20:07.225 15944-15944/com.test.dev.debug E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.dev.debug, PID: 15944
java.lang.IllegalArgumentException: Illegal state argument: 5
at android.support.design.widget.BottomSheetBehavior.startSettlingAnimation(BottomSheetBehavior.java:631)
at android.support.design.widget.BottomSheetBehavior$1.run(BottomSheetBehavior.java:550)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6123)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:867)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:757)
Run Code Online (Sandbox Code Playgroud)
Java类
public class BottomSheetController {
private BottomSheetBehavior<View> bottomSheetBehavior;
private WeakReference<FrameLayout> bottomSheetContainer;
private Slide slide;
public interface Slide {
void onSlide(@NonNull View bottomSheet, float slideOffset);
}
public void bind(FrameLayout bottomSheetContainer) {
this.bottomSheetContainer = new WeakReference<>(bottomSheetContainer);
bottomSheetBehavior = BottomSheetBehavior.from(this.bottomSheetContainer.get());
bottomSheetBehavior.setHideable(true);
bottomSheetBehavior.setState(BottomSheetBehavior.STATE_HIDDEN);
bottomSheetBehavior.setBottomSheetCallback(sheetCallback());
}
public void unbind() …Run Code Online (Sandbox Code Playgroud) 我有一个正在运行的应用程序,但有时,由于我不知道的原因,应用程序会崩溃并显示以下消息:
java.lang.IllegalStateException:尚未应用挂起的组合
我无法在任何地方找到有关此异常发生的信息,而且我也不明白如何避免它。
编辑#1:经过一些研究和测试,我发现当我在 BottomNavigation 中的选项卡之间快速切换时会引发此异常(选项卡包含 LazyColumn)
ListActivity在使用用户选择的项目内容打开新活动后返回原始文件时,我收到此异常.它只发生在冰淇淋三明治上.
这是跟踪:
java.lang.IllegalArgumentException: The observer is null.
at android.database.Observable.unregisterObserver(Observable.java:59)
at android.widget.BaseAdapter.unregisterDataSetObserver(BaseAdapter.java:42)
at android.widget.AbsListView.onDetachedFromWindow(AbsListView.java:2373)
at android.view.View.dispatchDetachedFromWindow(View.java:9756)
at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:2274)
at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:2272)
at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:2272)
at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:2272)
at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:2272)
at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:2272)
at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:2272)
at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:2272)
at android.view.ViewRootImpl.dispatchDetachedFromWindow(ViewRootImpl.java:2227)
at android.view.ViewRootImpl.doDie(ViewRootImpl.java:3679)
at android.view.ViewRootImpl.die(ViewRootImpl.java:3667)
at android.view.WindowManagerImpl.removeViewImmediate(WindowManagerImpl.java:320)
at android.view.WindowManagerImpl$CompatModeWrapper.removeViewImmediate(WindowManagerImpl.java:139)
at android.app.ActivityThread.handleDestroyActivity(ActivityThread.java:3144)
at android.app.ActivityThread.access$1200(ActivityThread.java:122)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1179)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4340)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
at dalvik.system.NativeStart.main(Native Method)
Run Code Online (Sandbox Code Playgroud)
堆栈中没有提到我的代码所以它真的令我困惑,我不能做一个脏的捕获事件:/
我DataSetObserver只在创建活动时注册匿名.此外,活动嵌入在ActivityGroup中(在4.0中已弃用,但仍应支持它,我希望如此).
新操作系统有没有人遇到过这个问题?
提前致谢.
更新:
好吧,我想我找到了问题的根源,虽然不知道如何解决它.
里面AbsListView.onDetachedFromWindow()我们有这个:
if (mAdapter != …Run Code Online (Sandbox Code Playgroud) android illegalstateexception android-4.0-ice-cream-sandwich
ACRA本身就遇到了一个奇怪的问题:
IllegalStateException: Cannot access ErrorReporter before ACRA#init
我有一个ACRA 4.3.0的应用程序,完美的工作.我将整个应用程序更改为库,因此我可以进行小修改.我创建了一个完全空白的新项目,而不是清单和链接到这个新库.对于尝试此操作的任何其他人,在AcraApplication.java中,您必须删除"resToastText = R.string.crash_toast_text"行并在Acra.init(this)下面添加一个新行;
ACRA.getConfig().setResToastText(R.string.crash_toast_text);
该项目构建良好,在调试中我已经确认ACRA.init(this); 在我的主程序代码之前和错误发生之前运行.在主程序中,我们设置了一些自定义数据:
ACRA.getErrorReporter().putCustomData("Orientation", "L");
它会导致崩溃(或更准确地说,ACRA本身会导致错误)并且不会生成ACRA报告.
任何想法下一步尝试或指示在哪里看?可能是ACRA与库不兼容,如果是这种情况,我可以用不同的方式将它拉出来,但有点挫败了库的目的.
解决方案:Acra.init(this);在init行之前添加以下三行,而不是添加以下行:
ACRAConfiguration config = ACRA.getNewDefaultConfig(this);
config.setResToastText(R.string.crash_toast_text);
ACRA.setConfig(config);
ACRA.init(this);
Run Code Online (Sandbox Code Playgroud)
请注意,这仅适用于v4.3.0及更高版本.
我尝试为"audio/3gpp"创建编码器,我的应用程序崩溃...
我用这个代码
String mMime = "audio/3gpp";
MediaCodec mMediaCodec = MediaCodec.createEncoderByType(mMime);
MediaFormat mMediaFormat = MediaFormat.createAudioFormat(mMime, RECORDER_SAMPLERATE, 1);
mMediaCodec.configure(mMediaFormat, null, null, MediaCodec.CONFIGURE_FLAG_ENCODE);
mMediaCodec.start();
Run Code Online (Sandbox Code Playgroud)
位于com.agent.mobile.TestAppActivity.initMediaCodec(TestAppActivity.java:234)的android.media.MediaCodec.configure(MediaCodec.java:256) 中的异常
java.lang.IllegalStateException
android.media.MediaCodec.native_configure(Native Method )
我FragmentTransaction.replace()用来交换碎片进出.该应用程序第一次启动没有问题.IllegalStateException由于savedInstanceState与提交新的片段事务之间存在冲突,因此在旋转设备时会抛出An .没有涉及AsyncTask.
一个StackOverflow问题建议将setContentView()呼叫置于其中onResumeFragments(),但这似乎没有效果.与...相同onPostResume().
另一个StackOverflow问题说要覆盖onConfigurationChanged().从某种意义上说,这是因为没有重新启动Activity,所以不会发生异常.但是,这可以防止具有不同纵向和横向布局的片段在这些布局之间切换.调用setContentView()中onConfigurationChanged()
导致类似的错误(抛出:IllegalArgumentException:二进制XML文件行#25:复制ID为0x12345678,标记为空,或父ID与另一片段)
使用fragmentTransaction.commitAllowingStateLoss()而不是.commit()原因IllegalStateException:Activity已被销毁.
我如何让它工作?
更多异常信息:
了java.lang.RuntimeException:无法启动活动ComponentInfo {MYAPP/myap.MainActivity}:
android.view.InflateException:二进制XML文件行#25:myapp.MainActivity.onResumeFragments(MainActivity.java:450)错误充气类片段
引起by:java.lang.IllegalStateException:无法在myapp.fragments.FragmentChange.onFragmentChange(FragmentChange.java:128)的> android.support.v4.app.FragmentManagerImpl.checkStateLoss(FragmentManager.java:1533)的onSaveInstanceState之后执行此操作at myapp.MainActivity.onNavigationDrawerItemSelected(MainActivity.java:490)myapp.fragments.NavigationDrawerFragment.selectItem(NavigationDrawerFragment.java:197)at myapp.fragments.NavigationDrawerFragment.onCreate(NavigationDrawerFragment.java:78)at myapp.MainActivity.onResumeFragments( MainActivity.java:450)
旋转设备时代码中的顺序是:
MainActivity.onPause()
MainActivity.saveInstanceState()
NavigationDrawerFragment.onSaveInstanceState()
MainActivity.onStop()
MainActivity.onDestroy()
MainActivity.onCreate()
super.onCreate(savedInstanceState);
MainActivity.onResumeFragments()
setContentView()
NavigationDrawerFragment.onCreate()
MainActivity.onNavigationDrawerItemSelected()
fragmentTransaction.commit();
Run Code Online (Sandbox Code Playgroud)
主要活动:
public class MainActivity extends AppCompatActivity implements
NavigationDrawerFragment.NavigationDrawerCallbacks {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
...
}
@Override
public void onNavigationDrawerItemSelected(int position) {
...
FragmentChangeEvent fragmentChangeEvent …Run Code Online (Sandbox Code Playgroud) 我昨天在我的应用程序工作时去睡觉,今天当我试图运行它时根本无法启动.一旦我尝试打开它就会崩溃java.lang.IllegalStateException.我已经在我的代码中提交了几个提交,只是为了排除这是我最近做过的事情.这没有任何意义,应用程序如何才能停止工作一夜?我在互联网上寻找错误,并没有很多有用的信息.这真的是一个奇怪的错误吗?
这是完整的堆栈跟踪:
E/AndroidRuntime:FATAL EXCEPTION:main java.lang.IllegalStateException:AssetManager已经完成!在android.app.Parcel.readException(Parcel.java:1439)的android.app.Aar开发.事件(Partcel.java:1449),android.app.A活动.ProartA活动(ActivityManagerNative.java:1947). Instrumentation.execStartActivity(Instrumentation.java:1419)位于android.app.Activity.startActivityForResult(Activity.java:3390)的android.app.Activity.startActivity(Activity.java:3583),位于com.android.launcher2.Launcher.startActivity (Launcher.java:2442)com.android.launcher2.Launcher.startActivitySafely(Launcher.java:2469)at com.android.launcher2.AppsCustomizePagedView.onClick(AppsCustomizePagedView.java:584)at android.view.View.performClick( View.java:4240)在android.view.Handler.dispatchMessage(Handler.java)的android.view.View $ PerformClick.run(View.java:17721)android.os.Handler.handleCallback(Handler.java:730) :92)在android.app.Looper.loop(Looper.java:137)的android.app.ActivityThread.main(ActivityThread.java:5136)at java.lang.reflect.Method.invokeNative(Native Method)at j com.android.internal.os.ZygoteInit.main中的com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:737)中的ava.lang.reflect.Method.invoke(Method.java:525) ZygoteInit.java:553)at dalvik.system.NativeStart.main(Native Method)
因为就像我说它似乎不是我所做的任何事情我不确定要发布什么代码.但是考虑到应用程序崩溃,这里是应该首先启动的两个主要类的代码:
应用
public class App extends Application {
private static App instance;
private static final String TAG = "Starter";
@Override
public void onCreate() {
super.onCreate();
instance = this;
// Enable Local Datastore.
Parse.enableLocalDatastore(this);
//TODO: Register subclasses
// ParseObject.registerSubclass(Challenge.class);
//Parse server
Log.d(TAG, "Initializing Parse");
Parse.initialize(new Parse.Configuration.Builder(this)
.applicationId(getString(R.string.parse_app_id))
.clientKey(getString(R.string.parse_client_key))
.server(getString(R.string.server_address)).build()
);
//Facebook
if (AccessToken.getCurrentAccessToken() == null)
ParseFacebookUtils.initialize(this);
ParseUser.enableAutomaticUser(); …Run Code Online (Sandbox Code Playgroud) 我的应用程序在 Play 商店中使用了 2 年,并且运行良好。但突然在过去两周内,用户报告应用程序在使用时崩溃。
所有崩溃都是针对 Android 10 用户的。
结构日志显示错误为,
java.lang.IllegalStateException: Only owner is able to interact with pending media content://media/external/images/media/259525
at android.os.Parcel.createException(Parcel.java:2079)
at android.os.Parcel.readException(Parcel.java:2039)
at android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:188)
at android.database.DatabaseUtils.readExceptionWithFileNotFoundExceptionFromParcel(DatabaseUtils.java:151)
at android.content.ContentProviderProxy.openTypedAssetFile(ContentProviderNative.java:705)
at android.content.ContentResolver.openTypedAssetFileDescriptor(ContentResolver.java:1687)
at android.content.ContentResolver.openAssetFileDescriptor(ContentResolver.java:1503)
at android.content.ContentResolver.openAssetFileDescriptor(ContentResolver.java:1420)
at android.graphics.ImageDecoder$ContentResolverSource.createImageDecoder(ImageDecoder.java:277)
at android.graphics.ImageDecoder.decodeDrawableImpl(ImageDecoder.java:1743)
at android.graphics.ImageDecoder.decodeDrawable(ImageDecoder.java:1736)
at android.widget.ImageView.getDrawableFromUri(ImageView.java:1022)
at android.widget.ImageView.resolveUri(ImageView.java:991)
at android.widget.ImageView.setImageURI(ImageView.java:568)
at androidx.appcompat.widget.AppCompatImageView.setImageURI(AppCompatImageView.java:116)
at androidx.databinding.adapters.ImageViewBindingAdapter.setImageUri(ImageViewBindingAdapter.java:46)
Run Code Online (Sandbox Code Playgroud)
这个屏幕上发生的事情是,用户应该捕获屏幕截图。我保存此屏幕截图并稍后在ImageView. 我通过它来检索屏幕截图图像URI。
当我使用它的URI.
android ×10
acra ×1
android-4.0-ice-cream-sandwich ×1
bottom-sheet ×1
facebook ×1
fragment ×1
init ×1
java ×1