i'm trying create android application using xamarin , visual studio. strange error while using setsupportactionbar function.
this xml code:
<?xml version="1.0" encoding="utf-8"?> <linearlayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <android.support.v7.widget.toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="wrap_content" android:minheight="?attr/actionbarsize" android:background="?attr/colorprimary" app:theme="@style/themeoverlay.appcompat.dark.actionbar" app:popuptheme="@style/themeoverlay.appcompat.dark" /> <android.support.v4.widget.drawerlayout android:id="@+id/drawer_layout" android:layout_width="match_parent" android:layout_height="match_parent"> <relativelayout android:layout_width="match_parent" android:layout_height="match_parent"> . . . </relativelayout> <listview android:id="@+id/left_drawer" android:layout_width="240dp" android:layout_height="match_parent" android:layout_gravity="start" android:choicemode="singlechoice" android:divider="#818181" android:dividerheight="1dp" android:background="#e3f2fd" /> </android.support.v4.widget.drawerlayout> </linearlayout>
and c# file code:
using system; using system.collections.generic; using system.linq; using android.app; using android.os; using android.widget; using supporttoolbar = android.support.v7.widget.toolbar; using android.support.v7.app; using android.support.v4.widget; using android.locations; using system.net; namespace ibuy { [activity(label = "main screen", theme = "@style/mytheme")] public class mainscreen : actionbaractivity, ilocationlistener { private supporttoolbar mtoolbar; private myactionbardrawertoggle mdrawertoggle; private drawerlayout mdrawerlayout; private listview mleftdrawer; private int userid, storeid, permission; private locationmanager locationmanager; private string deviceid = build.serial; private double currentx = 0, currenty = 0; private bool sent = false; private progressbar pbar; private textview txt; protected override void oncreate(bundle bundle) { base.oncreate(bundle); setcontentview(resource.layout.mainscreen); title = getstring(resource.string.main_screen); try { mtoolbar = findviewbyid<supporttoolbar>(resource.id.toolbar); mdrawerlayout = findviewbyid<drawerlayout>(resource.id.drawer_layout); mleftdrawer = findviewbyid<listview>(resource.id.left_drawer); setsupportactionbar(mtoolbar); } catch (exception ex) { console.writeline("@@@@@@@@@@@@@@@@@@@"); console.writeline(ex.message); console.writeline(ex.innerexception); console.writeline(ex.data); console.writeline(ex.source); console.writeline(ex.stacktrace); console.writeline(ex.tostring()); console.writeline("#################"); } mdrawertoggle = new myactionbardrawertoggle(this, mdrawerlayout, resource.string.opendrawer, resource.string.closedrawer); mdrawerlayout.setdrawerlistener(mdrawertoggle); supportactionbar.sethomebuttonenabled(true); supportactionbar.setdisplayshowtitleenabled(true); mdrawertoggle.syncstate(); . . . } } }
the weird thing application crashes when comes command: setsupportactionbar(mtoolbar);
this exception got:
exception of type 'java.lang.illegalstateexception' thrown. 09-26 12:09:03.399 i/mono-stdout(13640): exception of type 'java.lang.illegalstateexception' thrown. system.collections.generic.dictionary`2[system.object,system.object] 09-26 12:09:05.849 i/mono-stdout(13640): system.collections.generic.dictionary`2[system.object,system.object] mscorlib 09-26 12:09:07.468 i/mono-stdout(13640): mscorlib @ system.runtime.exceptionservices.exceptiondispatchinfo.throw () [0x0000b] in /users/builder/data/lanes/1978/f98871a9/source/mono/mcs/class/corlib/system.runtime.exceptionservices/exceptiondispatchinfo.cs:61 09-26 12:09:09.037 i/mono-stdout(13640): @ system.runtime.exceptionservices.exceptiondispatchinfo.throw () [0x0000b] in /users/builder/data/lanes/1978/f98871a9/source/mono/mcs/class/corlib/system.runtime.exceptionservices/exceptiondispatchinfo.cs:61 09-26 12:09:09.038 i/mono-stdout(13640): @ android.runtime.jnienv.callnonvirtualvoidmethod (intptr jobject, intptr jclass, intptr jmethod, android.runtime.jvalue* parms) [0x00084] in /users/builder/data/lanes/1978/f98871a9/source/monodroid/src/mono.android/src/runtime/jnienv.g.cs:1029 @ android.runtime.jnienv.callnonvirtualvoidmethod (intptr jobject, intptr jclass, intptr jmethod, android.runtime.jvalue* parms) [0x00084] in /users/builder/data/lanes/1978/f98871a9/source/monodroid/src/mono.android/src/runtime/jnienv.g.cs:1029 @ android.support.v7.app.appcompatactivity.setsupportactionbar (android.support.v7.widget.toolbar toolbar) [0x00091] in <filename unknown>:0 @ ibuy.mainscreen.oncreate (android.os.bundle bundle) [0x0005b] in c:\users\איציק\source\workspaces\ibuy\ibuy\ibuy\screens\mainscreen.cs:42 --- end of managed exception stack trace --- java.lang.illegalstateexception: activity has action bar supplied window decor. not request window.feature_action_bar , set windowactionbar false in theme use toolbar instead. @ android.support.v7.app.appcompatdelegateimplv7.setsupportactionbar(appcompatdelegateimplv7.java:193) @ android.support.v7.app.appcompatactivity.setsupportactionbar(appcompatactivity.java:96) @ md5f6ea2975de2355cb6a 09-26 12:09:09.038 i/mono-stdout(13640): @ android.support.v7.app.appcompatactivity.setsupportactionbar (android.support.v7.widget.toolbar toolbar) [0x00091] in <filename unknown>:0 09-26 12:09:09.038 i/mono-stdout(13640): @ ibuy.mainscreen.oncreate (android.os.bundle bundle) [0x0005b] in c:\users\איציק\source\workspaces\ibuy\ibuy\ibuy\screens\mainscreen.cs:42 574b5b4ea31e7d.mainscreen.n_oncreate(native method) @ md5f6ea2975de2355cb6a574b5b4ea31e7d.mainscreen.oncreate(mainscreen.java:36) @ android.app.activity.performcreate(activity.java:5990) @ android.app.instrumentation.callactivityoncreate(instrumentation.java:1106) @ android.app.activitythread.performlaunchactivity(activitythread.java:2309) @ android.app.activitythread.handlelaunchactivity(activitythread.java:2418) @ android.app.activitythread.access$900(activitythread.java:154) @ android.app.activitythread$h.handlemessage(activitythread.java:1321) @ android.os.handler.dispatchmessage(handler.java:102) @ android.os.looper.loop(looper.java:135) @ android.app.activitythread.main(activitythread.java:5289) @ java.lang.reflect.method.invoke(native method) @ java.lang.reflect.method.invoke(method.java:372) @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:904) @ com.android.internal.os.zygoteinit.main(zygoteinit.java:699) 09-26 12:09:09.038 i/mono-stdout(13640): --- end of managed exception stack trace --- 09-26 12:09:09.038 i/mono-stdout(13640): java.lang.illegalstateexception: activity has action bar supplied window decor. not request window.feature_action_bar , set windowactionbar false in theme use toolbar instead. 09-26 12:09:09.039 i/mono-stdout(13640): @ android.support.v7.app.appcompatdelegateimplv7.setsupportactionbar(appcompatdelegateimplv7.java:193) 09-26 12:09:09.039 i/mono-stdout(13640): @ android.support.v7.app.appcompatactivity.setsupportactionbar(appcompatactivity.java:96) 09-26 12:09:09.039 i/mono-stdout(13640): @ md5f6ea2975de2355cb6a574b5b4ea31e7d.mainscreen.n_oncreate(native method) 09-26 12:09:09.039 i/mono-stdout(13640): @ md5f6ea2975de2355cb6a574b5b4ea31e7d.mainscreen.oncreate(mainscreen.java:36) 09-26 12:09:09.040 i/mono-stdout(13640): @ android.app.activity.performcreate(activity.java:5990) 09-26 12:09:09.040 i/mono-stdout(13640): @ android.app.instrumentation.callactivityoncreate(instrumentation.java:1106) 09-26 12:09:09.040 i/mono-stdout(13640): @ android.app.activitythread.performlaunchactivity(activitythread.java:2309) 09-26 12:09:09.041 i/mono-stdout(13640): @ android.app.activitythread.handlelaunchactivity(activitythread.java:2418) 09-26 12:09:09.041 i/mono-stdout(13640): @ android.app.activitythread.access$900(activitythread.java:154) 09-26 12:09:09.042 i/mono-stdout(13640): @ android.app.activitythread$h.handlemessage(activitythread.java:1321) 09-26 12:09:09.042 i/mono-stdout(13640): @ android.os.handler.dispatchmessage(handler.java:102) 09-26 12:09:09.042 i/mono-stdout(13640): @ android.os.looper.loop(looper.java:135) 09-26 12:09:09.042 i/mono-stdout(13640): @ android.app.activitythread.main(activitythread.java:5289) 09-26 12:09:09.042 i/mono-stdout(13640): @ java.lang.reflect.method.invoke(native method) 09-26 12:09:09.042 i/mono-stdout(13640): @ java.lang.reflect.method.invoke(method.java:372) 09-26 12:09:09.042 i/mono-stdout(13640): @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:904) 09-26 12:09:09.042 i/mono-stdout(13640): @ com.android.internal.os.zygoteinit.main(zygoteinit.java:699) 09-26 12:09:10.509 i/mono-stdout(13640): java.lang.illegalstateexception: exception of type 'java.lang.illegalstateexception' thrown. java.lang.illegalstateexception: exception of type 'java.lang.illegalstateexception' thrown. 09-26 12:09:10.515 i/mono-stdout(13640): @ system.runtime.exceptionservices.exceptiondispatchinfo.throw () [0x0000b] in /users/builder/data/lanes/1978/f98871a9/source/mono/mcs/class/corlib/system.runtime.exceptionservices/exceptiondispatchinfo.cs:61 @ system.runtime.exceptionservices.exceptiondispatchinfo.throw () [0x0000b] in /users/builder/data/lanes/1978/f98871a9/source/mono/mcs/class/corlib/system.runtime.exceptionservices/exceptiondispatchinfo.cs:61 09-26 12:09:10.517 i/mono-stdout(13640): @ android.runtime.jnienv.callnonvirtualvoidmethod (intptr jobject, intptr jclass, intptr jmethod, android.runtime.jvalue* parms) [0x00084] in /users/builder/data/lanes/1978/f98871a9/source/monodroid/src/mono.android/src/runtime/jnienv.g.cs:1029 @ android.runtime.jnienv.callnonvirtualvoidmethod (intptr jobject, intptr jclass, intptr jmethod, android.runtime.jvalue* parms) [0x00084] in /users/builder/data/lanes/1978/f98871a9/source/monodroid/src/mono.android/src/runtime/jnienv.g.cs:1029 @ android.support.v7.app.appcompatactivity.setsupportactionbar (android.support.v7.widget.toolbar toolbar) [0x00091] in <filename unknown>:0 09-26 12:09:10.518 i/mono-stdout(13640): @ android.support.v7.app.appcompatactivity.setsupportactionbar (android.support.v7.widget.toolbar toolbar) [0x00091] in <filename unknown>:0 @ ibuy.mainscreen.oncreate (android.os.bundle bundle) [0x0005b] in c:\users\איציק\source\workspaces\ibuy\ibuy\ibuy\screens\mainscreen.cs:42 --- end of managed exception stack trace --- 09-26 12:09:10.520 i/mono-stdout(13640): @ ibuy.mainscreen.oncreate (android.os.bundle bundle) [0x0005b] in c:\users\איציק\source\workspaces\ibuy\ibuy\ibuy\screens\mainscreen.cs:42 java.lang.illegalstateexception: activity has action bar supplied window decor. not request window.feature_action_bar , set windowactionbar false in theme use toolbar instead. @ android.support.v7.app.appcompatdelegateimplv7.setsupportactionbar(appcompatdelegateimplv7.java:193) @ android.support.v7.app.appcompatactivity.setsupportactionbar(appcompatactivity.java:96) @ md5f6ea2975de2355cb6a574b5b4ea31e7d.mainscreen.n_oncreate(native method) @ md5f6ea2975de2355cb6a574b5b4ea31e7d.mainscreen.oncreate(mainscreen.java:36) @ android.app.activity.performcreate(activity.java:5990) @ android.app.instrumentation.callactivityoncreate(instrumentation.java:1106) @ android.app.activitythread.performlaunchactivity(activitythread.java:2309) @ android.app.activitythread.handlelaunchactivity(activitythread.java:2418) 09-26 12:09:10.520 i/mono-stdout(13640): --- end of managed exception stack trace --- @ android.app.activitythread.access$900(activitythread.java:154) @ android.app.activitythread$h.handlemessage(activitythread.java:1321) @ android.os.handler.dispatchmessage(handler.java:102) @ android.os.looper.loop(looper.java:135) 09-26 12:09:10.523 i/mono-stdout(13640): java.lang.illegalstateexception: activity has action bar supplied window decor. not request window.feature_action_bar , set windowactionbar false in theme use toolbar instead. @ android.app.activitythread.main(activitythread.java:5289) @ java.lang.reflect.method.invoke(native method) @ java.lang.reflect.method.invoke(method.java:372) 09-26 12:09:10.523 i/mono-stdout(13640): @ android.support.v7.app.appcompatdelegateimplv7.setsupportactionbar(appcompatdelegateimplv7.java:193) @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:904) 09-26 12:09:10.524 i/mono-stdout(13640): @ android.support.v7.app.appcompatactivity.setsupportactionbar(appcompatactivity.java:96) @ com.android.internal.os.zygoteinit.main(zygoteinit.java:699) 09-26 12:09:10.529 i/mono-stdout(13640): @ md5f6ea2975de2355cb6a574b5b4ea31e7d.mainscreen.n_oncreate(native method) 09-26 12:09:10.529 i/mono-stdout(13640): @ md5f6ea2975de2355cb6a574b5b4ea31e7d.mainscreen.oncreate(mainscreen.java:36) 09-26 12:09:10.530 i/mono-stdout(13640): @ android.app.activity.performcreate(activity.java:5990) 09-26 12:09:10.531 i/mono-stdout(13640): @ android.app.instrumentation.callactivityoncreate(instrumentation.java:1106) 09-26 12:09:10.532 i/mono-stdout(13640): @ android.app.activitythread.performlaunchactivity(activitythread.java:2309) 09-26 12:09:10.534 i/mono-stdout(13640): @ android.app.activitythread.handlelaunchactivity(activitythread.java:2418) 09-26 12:09:10.535 i/mono-stdout(13640): @ android.app.activitythread.access$900(activitythread.java:154) 09-26 12:09:10.536 i/mono-stdout(13640): @ android.app.activitythread$h.handlemessage(activitythread.java:1321) 09-26 12:09:10.537 i/mono-stdout(13640): @ android.os.handler.dispatchmessage(handler.java:102) 09-26 12:09:10.539 i/mono-stdout(13640): @ android.os.looper.loop(looper.java:135) 09-26 12:09:10.543 i/mono-stdout(13640): @ java.lang.reflect.method.invoke(native method) 09-26 12:09:10.544 i/mono-stdout(13640): @ java.lang.reflect.method.invoke(method.java:372) 09-26 12:09:10.546 i/mono-stdout(13640): @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:904) 09-26 12:09:10.547 i/mono-stdout(13640): @ com.android.internal.os.zygoteinit.main(zygoteinit.java:699)
it worked fine before , don't recall changing can make crash.
can give me tip do?
thank in advance!
looks theme not correctly configured.
either use in theme (see related answer)
<item name="windowactionbar">false</item>
or derive theme without action bar (see related answer), example:
theme.appcompat.light.noactionbar
Comments
Post a Comment