我有一个带有一个 URL 的 Web 视图,每当它在 Web 视图中重定向时,我都会使用具有新标题的新 URL 再次加载相同的可组合项,因为重定向发生得如此之快,它发生在实际可组合项完全组成之前,因此它崩溃了java.lang.IllegalStateException:指定的子级已经有父级。您必须首先对子级的父级调用removeView()。我目前正在使用 ram Costa 的 compose 目标库
navigator.value?.navigate(direction = MenuViewDestination,onlyIfResumed = true)
Run Code Online (Sandbox Code Playgroud)
,我之前也使用过 compose 提供的导航,在这两种情况下我都面临着同样的问题,如果我仅使用恢复 true 进行导航,则页面由于某种原因不会自行导航,并且我无法按原样处理异常发生在内部。这里我附加了菜单可组合项中使用的可组合项来加载 URL,
/* Adding custom accompanist WebView*/
@SuppressLint("SetJavaScriptEnabled")
@Composable
fun LoadMenuWebView(mainViewModel: MainViewModel, webViewModel: MenuWebViewModel, url: String?) {
Timber.i("LoadWebView from menu $url")
val context = LocalContext.current
var extraHeaders: Map<String, String?>?
webViewModel.menuWebViewState.value = url?.let {
rememberWebViewState(
it
)
}
mainViewModel.currentWebViewClient.value = remember {
getWebViewClient(
context,
mainViewModel.backEnabled,
mainViewModel.progressVisible,
mainViewModel.cookieManager,
mainViewModel
)
}
val state by remember { webViewModel.menuWebViewState }
val …Run Code Online (Sandbox Code Playgroud) android illegalstateexception android-jetpack-navigation android-jetpack-compose
当我按下主页按钮时,应该暂停应用程序,保存所有状态并正常工作.相反,我得到这个错误:
java.lang.RuntimeException:无法暂停活动{be.test.tester/be.test.tester.DataScreen}:java.lang.IllegalStateException:派生类未在android.app.ActivityThread.performPauseActivity中调用super.onSaveInstanceState() (ActivityThread.java:3641)位于android.app.A活动时的android.app.ActivityThread.performPauseActivity(ActivityThread.java:3598),android.app.A活动.事件(ActivityThread.java:3574),android.app.ActivityThread.access $ 2500(ActivityThread.java) :136)在android.app.A.运行时,Android.O.Roper.loop(Looper.java:143)的android.app.Handler.dispatchMessage(Handler.java:99)上的android.app.ActivityThread $ H.handleMessage(ActivityThread.java:2186)在android.app.ActivityThread.main(ActivityThread.java:5068)的java.lang.reflect.Method.invokeNative(Native Method),位于com.android的java.lang.reflect.Method.invoke(Method.java:521) .internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:858)位于dalvik.system.NativeStart.mai的com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)n(原生方法)
引起:java.lang.IllegalStateException:派生类没有在android.view.ViewGroup.dispatchSaveInstanceState(ViewGroup.java:1207)的android.view.View.dispatchSaveInstanceState(View.java:6087)中调用super.onSaveInstanceState() android.view.ViewGroup.dispatchSaveInstanceState(ViewGroup.java:1207)at android.view.View.saveHierarchyState(View.java:6068)at com.android.internal.policy.impl.PhoneWindow.saveHierarchyState(PhoneWindow.java:1475)在android.app.A活动状态(Activity.java:1056)的android.app.A活动中的android.app.A活动状态(Activity.java:1056)的android.app.A活动状态中的android.app.Activity.onSaveInstanceState(Activity.java:1106). ActivityThread.performPauseActivity(ActivityThread.java:3623)...还有12个
我的活动在触摸时做出反应:
public class DataScreen extends Activity implements OnGestureListener{
Run Code Online (Sandbox Code Playgroud)
我从意图中获得了一些额外的东西:
totUsage = Integer.parseInt(getIntent().getStringExtra("extraTotUsage"));
limit = Integer.parseInt(getIntent().getStringExtra("extraLimit"));
Bundle bundle = getIntent().getExtras();
mylist = (ArrayList<HashMap<String, String>>) bundle.get("extraMyList");
Run Code Online (Sandbox Code Playgroud)
自定义视图显示数据(画布).在屏幕上滚动时,数据会在自定义视图(set,get方法)中更改并重绘自身.
我真的没有在这里管理onSaveInstanceState,不知道我是否必须这样做.
我的应用程序是堆栈的顶部,因为:
i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
Run Code Online (Sandbox Code Playgroud)
我不明白这个错误.
我试图将一个位图图像设置为画布使用 setBitMap,当时我得到了一个IllegalStateException.这个画布当前有一些图像,我试图替换它.任何人都知道为什么会这样?
代码片段
editBm = Bitmap.createBitmap(951, 552, Bitmap.Config.ARGB_8888);
Canvas mCanvas=new Canvas(editBm);
eBit=LoadBMPsdcard(filePath); ---->returns a bitmap when the file path to the file is provided
Log.i("BM size", editBm.getWidth()+"");
mCanvas.setBitmap(eBit);
Run Code Online (Sandbox Code Playgroud)
我没有得到任何NullPointer错误,并且该方法 LoadBMPsdcard() 运行良好.
请告诉我你的任何想法......
提前致谢
快乐的编码
为什么我的片段不能被添加到后台?
@Override
public void onTabSelected(Tab tab, android.app.FragmentTransaction ft) {
FragmentTransaction transaction = null;
ListFragment newListFragment = new bListFragment();
Fragment newFragment = new EntryFrag();
transaction = getFragmentManager().beginTransaction();
ft.replace(R.id.frameOne, newListFragment);
ft.replace(R.id.frameTwo, newFragment);
ft.addToBackStack(null);
transaction.commit();
}
Run Code Online (Sandbox Code Playgroud)
logcat错误
11-22 12:30:41.370: E/AndroidRuntime(13989): FATAL EXCEPTION: main
11-22 12:30:41.370: E/AndroidRuntime(13989): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.tyczj.bowling/com.tyczj.bowling.Tabs}: java.lang.IllegalStateException: This FragmentTransaction is not allowed to be added to the back stack.
11-22 12:30:41.370: E/AndroidRuntime(13989): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1751)
11-22 12:30:41.370: E/AndroidRuntime(13989): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1767)
11-22 12:30:41.370: E/AndroidRuntime(13989): at android.app.ActivityThread.access$1500(ActivityThread.java:122)
11-22 12:30:41.370: E/AndroidRuntime(13989): …Run Code Online (Sandbox Code Playgroud) 在Android中创建和填充我的新SQLiteDatabase时,我遇到两个相互矛盾的异常.总之我的代码:
SQLiteOpenHelper扩展类:
public void onCreate(SQLiteDatabase db) {
db.execSQL(DB_TABLE_CREATE);
loadLevelData(db); //puts data in the database
//db.close(); <<< ?
}
Run Code Online (Sandbox Code Playgroud)
在我的activity类中,我实例化了这个类(在onCreate()中),并调用getWritableDatabase():
dbHelper = new DbOpenHelper(getApplicationContext());
database = dbHelper.getWritableDatabase();
Run Code Online (Sandbox Code Playgroud)
现在如果我db.close()在填充数据库之后没有调用,就像上面那样,我得到了
android.database.sqlite.DatabaseObjectNotClosedException: Application did not close the cursor or database object that was opened here
Run Code Online (Sandbox Code Playgroud)
但是,如果我关闭它,我会得到以下异常:
java.lang.IllegalStateException: database not open
Run Code Online (Sandbox Code Playgroud)
在getWritableDatabase()上.
这真让我困惑,所以有人可以帮我解决错误吗?
我在谷歌播放崩溃报告上有这个错误,不知道如何解决它:
java.lang.IllegalStateException: Couldn't init cursor window
at android.database.CursorWindow.native_init(Native Method)
at android.database.CursorWindow.<init>(CursorWindow.java:41)
at android.database.sqlite.SQLiteCursor.fillWindow(SQLiteCursor.java:276)
at android.database.sqlite.SQLiteCursor.getCount(SQLiteCursor.java:268)
at android.database.AbstractCursor.moveToPosition(AbstractCursor.java:171)
at android.database.AbstractCursor.moveToFirst(AbstractCursor.java:248)
at com.jim2.UpdateService.restaureNotifications(UpdateService.java:274)
at com.jim2.helpers.Globals.updateWidgets(Globals.java:1011)
at com.jim2.helpers.Globals.onReceive(Globals.java:746)
at com.jim2.UpdateService$5.onSignalStrengthsChanged(UpdateService.java:747)
at android.telephony.PhoneStateListener$2.handleMessage(PhoneStateListener.java:387)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:130)
at android.app.ActivityThread.main(ActivityThread.java:3693)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:507)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:907)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:665)
at dalvik.system.NativeStart.main(Native Method)
Run Code Online (Sandbox Code Playgroud)
这是我的代码谁崩溃:
DataBaseHelper d = new DataBaseHelper(context);
Cursor c = d.getNotifications(false);
SharedPreferences preferences;
String ns = Context.NOTIFICATION_SERVICE;
NotificationManager mNotificationManager = (NotificationManager)context.getSystemService(ns);
CharSequence tickerText = "";
if(c!=null && c.moveToFirst()){ // CRASH HERE :(
do{
.... …Run Code Online (Sandbox Code Playgroud) database android cursor illegalstateexception android-sqlite
我正在创建一个网页,使用FacesUtils中的getSessionMap()从上一页获取id.如果页面没有获得id,则应将其重定向到其他页面,在本例中为draft.jsf.这是代码:
if ((FacesUtils.getSessionMap().get("id") == null)) {
try {
FacesUtils.getResponse().sendRedirect("draft.jsf");
return;
} catch (Exception e) {
e.printStackTrace();
}
} else {
id = Long.valueOf(String.valueOf(FacesUtils.getSessionMap().get("id")));
}
Run Code Online (Sandbox Code Playgroud)
但我总是得到java.lang.IllegalStateException:当id为null时提交,并且页面未被重定向到draft.jsf.我的代码出了什么问题?任何帮助将非常感激.
这是堆栈跟踪:
java.lang.IllegalStateException: Committed
at org.mortbay.jetty.Response.resetBuffer(Response.java:1023)
at org.mortbay.jetty.Response.sendRedirect(Response.java:428)
at org.jleaf.erp.inv.controller.EditAssemblyController.init(EditAssemblyController.java:58)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement.invoke(InitDestroyAnnotationBeanPostProcessor.java:340)
at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.invokeInitMethods(InitDestroyAnnotationBeanPostProcessor.java:293)
at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:130)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsBeforeInitialization(AbstractAutowireCapableBeanFactory.java:393)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1415)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:518)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:455)
at org.springframework.beans.factory.support.AbstractBeanFactory$2.getObject(AbstractBeanFactory.java:331)
at org.jlego.web.jsf.ViewScope.get(ViewScope.java:20)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:327)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:192)
at …Run Code Online (Sandbox Code Playgroud) 我想在android中实现autocomplete place google API.为此,我需要创建一个GoogleApiClient对象.我已经使用了以下代码...
private GoogleApiClient mGoogleApiClient;
mGoogleApiClient = new GoogleApiClient.Builder(getActivity())
.addApi(Drive.API)
.addScope(Drive.SCOPE_FILE)
.enableAutoManage(getActivity(), 0 /* clientId */, this)
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.build();
Run Code Online (Sandbox Code Playgroud)
但是当片段启动时,它会抛出以下异常并且应用程序崩溃了.
java.lang.IllegalStateException:已经管理了ID为0的GoogleApiClient
注意:这是在FRAGMENT中执行的.
以下是清单文件配置..
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="com.example.permission.MAPS_RECEIVE"/>
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme"
android:name="com.example.bluehorsesoftkol.ekplatevendor.Utils.EkPlateVendorApplication">
<activity
android:name="com.example.bluehorsesoftkol.ekplatevendor.activity.registration.ActivitySplashScreen"
android:label="@string/app_name"
android:screenOrientation="landscape">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="com.example.bluehorsesoftkol.ekplatevendor.activity.registration.ActivityLogin"
android:screenOrientation="landscape">
</activity>
<activity
android:name=".activity.vendor.ActivityHome"
android:screenOrientation="landscape">
</activity>
<activity android:name="com.example.bluehorsesoftkol.ekplatevendor.activity.vendor.ActivityAddVendor"
android:screenOrientation="landscape">
</activity> …Run Code Online (Sandbox Code Playgroud) 我正在尝试从内部存储播放音频文件.我用的代码是......
package com.abhi.firstapp.firstapp;
import android.content.Context;
import android.media.AudioManager;
import android.media.MediaPlayer;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.util.Log;
import android.view.View;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Toast;
import java.io.File;
import java.io.IOException;
import java.net.URI;
public class MainActivity extends AppCompatActivity {
MediaPlayer mp;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
File f= new File("/sdcard/a.mp3");
if(f.exists())
{
Toast toast= Toast.makeText(this, "file exists", Toast.LENGTH_LONG);
toast.show();
Log.d("uri","1");
Uri uri= Uri.fromFile(f);
Log.d("uri", "2"); …Run Code Online (Sandbox Code Playgroud) android media-player illegalstateexception android-mediaplayer
https://developer.android.com/reference/android/view/View.DragShadowBuilder#public-constructors
当我使用上面概述的第二个构造函数时-“ View.DragShadowBuilder()构造一个没有关联的View的阴影生成器对象。”
引发以下异常:java.lang.IllegalStateException:拖动阴影尺寸必须为正
第二行代码对我来说是这样的:
public boolean onLongClick(View view) {
view.startDragAndDrop(null, new View.DragShadowBuilder(), view, 0);
return true;
}
Run Code Online (Sandbox Code Playgroud)
它仅在Android 9 Pie上发生。我已经在以前的Android版本上尝试过了,没有问题。我在Android问题追踪器上创建了一个问题,但也许这里有人知道为什么会发生或如何解决。
同时,我正在创建新的View.DragShadowBuilderView(view),其中view是一个透明的ImageView,现在可以停止崩溃,但是我不确定这是否是最佳解决方案。