
我正在尝试使用Xamarin和Visual Studio创建一个Android应用程序.
突然,我在使用SetSupportActionbar函数时遇到了一个奇怪的错误.
这是我的XML代码:
<?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>这是我的C#文件代码:
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(); . . . } }}奇怪的是,当涉及到这个命令时应用程序崩溃:SetSupportActionbar(mToolbar);
这是我得到的例外:
Exception of type 'java.lang.IllegalStateException' was thrown.09-26 12:09:03.399 I/mono-stdout(13640): Exception of type 'java.lang.IllegalStateException' was 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]mscorlib09-26 12:09:07.468 I/mono-stdout(13640): mscorlib at 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): at 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): at 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 at 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 at AndroID.Support.V7.App.AppCompatActivity.SetSupportActionbar (AndroID.Support.V7.Widget.Toolbar toolbar) [0x00091] in <filename unkNown>:0 at 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: This Activity already has an action bar supplIEd by the window decor. Do not request Window.FEATURE_ACTION_bar and set windowActionbar to false in your theme to use a Toolbar instead. at androID.support.v7.app.AppCompatDelegateImplV7.setSupportActionbar(AppCompatDelegateImplV7.java:193) at androID.support.v7.app.AppCompatActivity.setSupportActionbar(AppCompatActivity.java:96) at md5f6ea2975de2355cb6a09-26 12:09:09.038 I/mono-stdout(13640): at 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): at 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) at md5f6ea2975de2355cb6a574b5b4ea31e7d.MainScreen.onCreate(MainScreen.java:36) at androID.app.Activity.performCreate(Activity.java:5990) at androID.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106) at androID.app.ActivityThread.performlaunchActivity(ActivityThread.java:2309) at androID.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2418) at androID.app.ActivityThread.access0(ActivityThread.java:154) at androID.app.ActivityThread$H.handleMessage(ActivityThread.java:1321) at androID.os.Handler.dispatchMessage(Handler.java:102) at androID.os.Looper.loop(Looper.java:135) at androID.app.ActivityThread.main(ActivityThread.java:5289) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.androID.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:904) at 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: This Activity already has an action bar supplIEd by the window decor. Do not request Window.FEATURE_ACTION_bar and set windowActionbar to false in your theme to use a Toolbar instead.09-26 12:09:09.039 I/mono-stdout(13640): at androID.support.v7.app.AppCompatDelegateImplV7.setSupportActionbar(AppCompatDelegateImplV7.java:193)09-26 12:09:09.039 I/mono-stdout(13640): at androID.support.v7.app.AppCompatActivity.setSupportActionbar(AppCompatActivity.java:96)09-26 12:09:09.039 I/mono-stdout(13640): at md5f6ea2975de2355cb6a574b5b4ea31e7d.MainScreen.n_onCreate(Native Method)09-26 12:09:09.039 I/mono-stdout(13640): at md5f6ea2975de2355cb6a574b5b4ea31e7d.MainScreen.onCreate(MainScreen.java:36)09-26 12:09:09.040 I/mono-stdout(13640): at androID.app.Activity.performCreate(Activity.java:5990)09-26 12:09:09.040 I/mono-stdout(13640): at androID.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)09-26 12:09:09.040 I/mono-stdout(13640): at androID.app.ActivityThread.performlaunchActivity(ActivityThread.java:2309)09-26 12:09:09.041 I/mono-stdout(13640): at androID.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2418)09-26 12:09:09.041 I/mono-stdout(13640): at androID.app.ActivityThread.access0(ActivityThread.java:154)09-26 12:09:09.042 I/mono-stdout(13640): at androID.app.ActivityThread$H.handleMessage(ActivityThread.java:1321)09-26 12:09:09.042 I/mono-stdout(13640): at androID.os.Handler.dispatchMessage(Handler.java:102)09-26 12:09:09.042 I/mono-stdout(13640): at androID.os.Looper.loop(Looper.java:135)09-26 12:09:09.042 I/mono-stdout(13640): at androID.app.ActivityThread.main(ActivityThread.java:5289)09-26 12:09:09.042 I/mono-stdout(13640): at java.lang.reflect.Method.invoke(Native Method)09-26 12:09:09.042 I/mono-stdout(13640): at java.lang.reflect.Method.invoke(Method.java:372)09-26 12:09:09.042 I/mono-stdout(13640): at com.androID.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:904)09-26 12:09:09.042 I/mono-stdout(13640): at 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' was thrown.java.lang.IllegalStateException: Exception of type 'java.lang.IllegalStateException' was thrown.09-26 12:09:10.515 I/mono-stdout(13640): at System.Runtime.ExceptionServices.ExceptiondispatchInfo.Throw () [0x0000b] in /Users/builder/data/lanes/1978/f98871a9/source/mono/mcs/class/corlib/System.Runtime.ExceptionServices/ExceptiondispatchInfo.cs:61 at 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): at 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 at 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 at 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): at AndroID.Support.V7.App.AppCompatActivity.SetSupportActionbar (AndroID.Support.V7.Widget.Toolbar toolbar) [0x00091] in <filename unkNown>:0 at 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): at IBuy.MainScreen.OnCreate (AndroID.OS.Bundle bundle) [0x0005b] in C:\Users\איציק\Source\Workspaces\iBuy\IBuy\IBuy\Screens\MainScreen.cs:42 java.lang.IllegalStateException: This Activity already has an action bar supplIEd by the window decor. Do not request Window.FEATURE_ACTION_bar and set windowActionbar to false in your theme to use a Toolbar instead. at androID.support.v7.app.AppCompatDelegateImplV7.setSupportActionbar(AppCompatDelegateImplV7.java:193) at androID.support.v7.app.AppCompatActivity.setSupportActionbar(AppCompatActivity.java:96) at md5f6ea2975de2355cb6a574b5b4ea31e7d.MainScreen.n_onCreate(Native Method) at md5f6ea2975de2355cb6a574b5b4ea31e7d.MainScreen.onCreate(MainScreen.java:36) at androID.app.Activity.performCreate(Activity.java:5990) at androID.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106) at androID.app.ActivityThread.performlaunchActivity(ActivityThread.java:2309) at androID.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2418)09-26 12:09:10.520 I/mono-stdout(13640): --- End of managed exception stack trace --- at androID.app.ActivityThread.access0(ActivityThread.java:154) at androID.app.ActivityThread$H.handleMessage(ActivityThread.java:1321) at androID.os.Handler.dispatchMessage(Handler.java:102) at androID.os.Looper.loop(Looper.java:135)09-26 12:09:10.523 I/mono-stdout(13640): java.lang.IllegalStateException: This Activity already has an action bar supplIEd by the window decor. Do not request Window.FEATURE_ACTION_bar and set windowActionbar to false in your theme to use a Toolbar instead. at androID.app.ActivityThread.main(ActivityThread.java:5289) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372)09-26 12:09:10.523 I/mono-stdout(13640): at androID.support.v7.app.AppCompatDelegateImplV7.setSupportActionbar(AppCompatDelegateImplV7.java:193) at com.androID.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:904)09-26 12:09:10.524 I/mono-stdout(13640): at androID.support.v7.app.AppCompatActivity.setSupportActionbar(AppCompatActivity.java:96) at com.androID.internal.os.ZygoteInit.main(ZygoteInit.java:699)09-26 12:09:10.529 I/mono-stdout(13640): at md5f6ea2975de2355cb6a574b5b4ea31e7d.MainScreen.n_onCreate(Native Method)09-26 12:09:10.529 I/mono-stdout(13640): at md5f6ea2975de2355cb6a574b5b4ea31e7d.MainScreen.onCreate(MainScreen.java:36)09-26 12:09:10.530 I/mono-stdout(13640): at androID.app.Activity.performCreate(Activity.java:5990)09-26 12:09:10.531 I/mono-stdout(13640): at androID.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)09-26 12:09:10.532 I/mono-stdout(13640): at androID.app.ActivityThread.performlaunchActivity(ActivityThread.java:2309)09-26 12:09:10.534 I/mono-stdout(13640): at androID.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2418)09-26 12:09:10.535 I/mono-stdout(13640): at androID.app.ActivityThread.access0(ActivityThread.java:154)09-26 12:09:10.536 I/mono-stdout(13640): at androID.app.ActivityThread$H.handleMessage(ActivityThread.java:1321)09-26 12:09:10.537 I/mono-stdout(13640): at androID.os.Handler.dispatchMessage(Handler.java:102)09-26 12:09:10.539 I/mono-stdout(13640): at androID.os.Looper.loop(Looper.java:135)09-26 12:09:10.543 I/mono-stdout(13640): at java.lang.reflect.Method.invoke(Native Method)09-26 12:09:10.544 I/mono-stdout(13640): at java.lang.reflect.Method.invoke(Method.java:372)09-26 12:09:10.546 I/mono-stdout(13640): at com.androID.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:904)09-26 12:09:10.547 I/mono-stdout(13640): at com.androID.internal.os.ZygoteInit.main(ZygoteInit.java:699)它以前工作得很好,我不记得改变任何有关它的事情会导致它崩溃.
任何人都可以给我一个小费怎么办?
先感谢您!
解决方法:
看起来您的主题配置不正确.
在你的主题中使用(见related answer)
< item name =“windowActionbar”> false< / item>
或者从没有 *** 作栏的主题派生(见related answer),例如:
theme.AppCompat.light.NoActionbar
总结以上是内存溢出为你收集整理的c# – SetSupportActionBar在visual studio和Xamarin中崩溃了全部内容,希望文章能够帮你解决c# – SetSupportActionBar在visual studio和Xamarin中崩溃了所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)