android - App crashes with java.lang.RuntimeException: Unable to start activity ComponentInfo error -
my app has worked before app won't boot correctly. when app boot homebck.xml (which include source code below) automatically crashes , in toast says crash_toast_text in strings.xml.
also not toast appears share tray ex. 
that pops every single time. below have posted files think necessary me out!
error log:
06-03 18:27:11.420 9762-9762/com.celebration e/acra﹕ acra caught runtimeexception com.celebration java.lang.runtimeexception: unable start activity componentinfo{com.celebration/com.abode.activity.mainactivity}: java.lang.arrayindexoutofboundsexception: length=10; index=10 @ android.app.activitythread.performlaunchactivity(activitythread.java:2298) @ android.app.activitythread.handlelaunchactivity(activitythread.java:2360) @ android.app.activitythread.access$800(activitythread.java:144) @ android.app.activitythread$h.handlemessage(activitythread.java:1278) @ android.os.handler.dispatchmessage(handler.java:102) @ android.os.looper.loop(looper.java:135) @ android.app.activitythread.main(activitythread.java:5221) @ java.lang.reflect.method.invoke(native method) @ java.lang.reflect.method.invoke(method.java:372) @ com.android.internal.os.zygoteinit$methodandargscaller.run(zygoteinit.java:899) @ com.android.internal.os.zygoteinit.main(zygoteinit.java:694) caused by: java.lang.arrayindexoutofboundsexception: length=10; index=10 @ com.abode.activity.mainactivity.oncreate(mainactivity.java:155) @ android.app.activity.performcreate(activity.java:5937) @ android.app.instrumentation.callactivityoncreate(instrumentation.java:1105) @ android.app.activitythread.performlaunchactivity(activitythread.java:2251) at android.app.activitythread.handlelaunchactivity(activitythread.java:2360) at android.app.activitythread.access$800(activitythread.java:144) at android.app.activitythread$h.handlemessage(activitythread.java:1278) at android.os.handler.dispatchmessage(handler.java:102) at android.os.looper.loop(looper.java:135) at android.app.activitythread.main(activitythread.java:5221) 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:899) at com.android.internal.os.zygoteinit.main(zygoteinit.java:694) only snippet of mainactivity.java due 30000 character limit:
public class mainactivity extends actionbaractivity { public static file path = new file(environment.getexternalstoragedirectory() + ""); public static item[] filelist; public static boolean firstlvl = true; public static listadapter adapter; private final int fileupload = 100; public imageloader imageloader; public static final string url = "http://celebration.anazro.com/appdata/images/celebration.jpg"; public static final string url1 = "http://celebration.anazro.com/appdata/images/celebration2.jpg"; public static final string url2 = "http://celebration.anazro.com/appdata/images/celebration3.jpg"; public static final string url3 = "http://celebration.anazro.com/appdata/images/celebration4.jpg"; public static final string url4 = "http://celebration.anazro.com/appdata/images/celebration5.jpg"; // public static final string url5 = ""; // public static final string url6 = ""; // public static final string url7 = ""; public static string chosenfile; public static arraylist<string> str = new arraylist<string>(); public static string ss; public aboutpopup aboutpopup; private drawerlayout mdrawerlayout; private listview mdrawerlist; private actionbardrawertoggle mdrawertoggle; // nav drawer title private charsequence mdrawertitle; // used store app title private charsequence mtitle; // slide menu items private string[] navmenutitles; private typedarray navmenuicons; //old code private arraylist<navdraweritem> navdraweritems; private navdrawerlistadapter navadapter; layoutinflater inflater; private view viewforpopup; public alarmmanager alarm; //experiment code public static livesdksampleapplication mycontextmanager; public static weakreference wractivity = null; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.drawer_main); wractivity = new weakreference<mainactivity>(this); globals.application = getapplication(); mycontextmanager = ((livesdksampleapplication) getapplicationcontext()); mycontextmanager.setcontext(this); mtitle = mdrawertitle = gettitle(); navmenutitles = getresources().getstringarray(r.array.nav_drawer_items); navmenuicons = getresources().obtaintypedarray(r.array.nav_drawer_icons); mdrawerlayout = (drawerlayout) findviewbyid(r.id.drawer_layout); mdrawerlist = (listview) findviewbyid(r.id.left_drawer); viewforpopup = (view)findviewbyid(r.id.view); alarm = (alarmmanager) mainactivity.this.getsystemservice(context.alarm_service); navdraweritems = new arraylist<navdraweritem>(); navdraweritems.add(new navdraweritem(navmenutitles[0], navmenuicons.getresourceid(0, -1))); navdraweritems.add(new navdraweritem(navmenutitles[1], navmenuicons.getresourceid(1, -1))); navdraweritems.add(new navdraweritem(navmenutitles[2], navmenuicons.getresourceid(2, -1))); navdraweritems.add(new navdraweritem(navmenutitles[3], navmenuicons.getresourceid(3, -1))); navdraweritems.add(new navdraweritem(navmenutitles[4], navmenuicons.getresourceid(4, -1))); navdraweritems.add(new navdraweritem(navmenutitles[5], navmenuicons.getresourceid(5, -1))); navdraweritems.add(new navdraweritem(navmenutitles[6], navmenuicons.getresourceid(6, -1))); navdraweritems.add(new navdraweritem(navmenutitles[7], navmenuicons.getresourceid(7, -1))); navdraweritems.add(new navdraweritem(navmenutitles[8], navmenuicons.getresourceid(8, -1))); navdraweritems.add(new navdraweritem(navmenutitles[9], navmenuicons.getresourceid(9, -1))); navdraweritems.add(new navdraweritem(navmenutitles[10], navmenuicons.getresourceid(10, -1))); navmenuicons.recycle(); mdrawerlist.setonitemclicklistener(new draweritemclicklistener()); navadapter = new navdrawerlistadapter(getapplicationcontext(),navdraweritems); mdrawerlist.setadapter(navadapter); // enabling action bar app icon , behaving toggle button getsupportactionbar().setdisplayhomeasupenabled(true); getsupportactionbar().setdisplayshowhomeenabled(true); getsupportactionbar().sethomebuttonenabled(true); getsupportactionbar().setlogo(r.drawable.logo); // getsupportactionbar().setdisplayuselogoenabled(true); mdrawertoggle = new actionbardrawertoggle(this, mdrawerlayout, r.drawable.side_bar, r.string.app_name, r.string.app_name) { public void ondrawerclosed(view view) { getsupportactionbar().settitle(mtitle); // calling onprepareoptionsmenu() show action bar icons invalidateoptionsmenu(); } public void ondraweropened(view drawerview) { getsupportactionbar().settitle(mdrawertitle); // calling onprepareoptionsmenu() hide action bar icons invalidateoptionsmenu(); } }; mdrawerlayout.setdrawerlistener(mdrawertoggle); if (savedinstancestate == null) { // on first time display view first nav item selectitem(0); } } @override protected void onsaveinstancestate(bundle outstate) { super.onsaveinstancestate(outstate); } //a method found in stackoverflow, don't remember author, determine right screen orientation independently of phone or tablet device @override public void onresume() { super.onresume(); getsupportfragmentmanager() .begintransaction() .detach(fragment) .attach(fragment) .commit(); } @override public void ondestroy(){ super.ondestroy(); } @override public boolean oncreateoptionsmenu(menu menu) { // inflate menu; adds items action bar if present. getmenuinflater().inflate(r.menu.main, menu); return true; } @override public boolean onoptionsitemselected(menuitem item) { // handle action bar item clicks here. action bar // automatically handle clicks on home/up button, long // specify parent activity in androidmanifest.xml. /* int id = item.getitemid(); if (id == r.id.action_settings) { return true; }*/ switch (item.getitemid()) { case android.r.id.home: { if (mdrawerlayout.isdraweropen(mdrawerlist)) { mdrawerlayout.closedrawer(mdrawerlist); } else { mdrawerlayout.opendrawer(mdrawerlist); } break; } case r.id.admin:{ adminpopup adminpopup = new adminpopup(this); adminpopup.showatlocation(viewforpopup,0,0); break; } } return super.onoptionsitemselected(item); } private class draweritemclicklistener implements listview.onitemclicklistener { @override public void onitemclick(adapterview<?> parent, view view, int position, long id) { selectitem(position); } } this xml code slideshow:
<linearlayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:id="@+id/homefragment" android:background="@color/white"> <android.support.v4.view.viewpager android:id="@+id/view_pager" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="10" /> <linearlayout android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="0dp" android:layout_gravity="center_horizontal" android:layout_weight="1"> <imageview android:id="@+id/image_information" android:layout_width="0dp" android:layout_height="match_parent" android:src="@drawable/ic_information" android:layout_weight="1" /> <imageview android:id="@+id/image_save" android:layout_width="0dp" android:layout_height="match_parent" android:src="@drawable/ic_save" android:layout_weight="1" /> <imageview android:id="@+id/image_wallpaper" android:layout_width="0dp" android:layout_height="match_parent" android:src="@drawable/ic_share" android:layout_weight="1"/> </linearlayout> </linearlayout> this last java file slideshow
public class slideshow extends fragment { // bitmap bitmap=memorycache.get(url); public static final string url = "http://api.androidhive.info/json/movies/2.jpg"; viewpager m_viewpager; networkimageadapter m_adapter; imageadapter m_imageadapter; arraylist<networkimageview> m_networkimageviews; arraylist<imageview> m_imageview; imageview imageview; context context; imageloader imageloader = appcontroller.getinstance().getimageloader(); @override public view oncreateview(layoutinflater inflater, viewgroup container, bundle savedinstancestate) { context = getactivity(); view rootview = inflater.inflate(r.layout.slideshow, container, false); m_viewpager = (viewpager) rootview.findviewbyid(r.id.slide_view_pager); m_networkimageviews = new arraylist<networkimageview>(); m_networkimageviews.clear(); networkimageview m_newworkimageview = new networkimageview(context); m_newworkimageview.setimageurl(url, imageloader); m_networkimageviews.add(m_newworkimageview); m_adapter = new networkimageadapter(m_networkimageviews); //m_imageview = new arraylist<imageview>(); //imageview = new imageview(context); /* getxmltask task = new getxmltask(); // execute task task.execute(new string[] { url }); */ return rootview; } public static bitmap getbitmapfromurl(string src) { try { url url = new url(src); httpurlconnection connection = (httpurlconnection) url.openconnection(); connection.setdoinput(true); connection.connect(); inputstream input = connection.getinputstream(); bitmap mybitmap = bitmapfactory.decodestream(input); return mybitmap; } catch (ioexception e) { e.printstacktrace(); return null; } } // autho private class getxmltask extends asynctask<string, void, bitmap> { @override protected bitmap doinbackground(string... urls) { bitmap map = null; (string url : urls) { map = downloadimage(url); } return map; } // sets bitmap returned doinbackground @override protected void onpostexecute(bitmap result) { imageview.setimagebitmap(result); m_imageview.add(imageview); m_imageadapter = new imageadapter(m_imageview); m_viewpager.setadapter(m_imageadapter); } // creates bitmap inputstream , returns private bitmap downloadimage(string url) { bitmap bitmap = null; inputstream stream = null; bitmapfactory.options bmoptions = new bitmapfactory.options(); bmoptions.insamplesize = 1; try { stream = gethttpconnection(url); bitmap = bitmapfactory. decodestream(stream, null, bmoptions); stream.close(); } catch (ioexception e1) { e1.printstacktrace(); } return bitmap; } // makes httpurlconnection , returns inputstream private inputstream gethttpconnection(string urlstring) throws ioexception { inputstream stream = null; url url = new url(urlstring); urlconnection connection = url.openconnection(); try { httpurlconnection httpconnection = (httpurlconnection) connection; httpconnection.setrequestmethod("get"); httpconnection.connect(); if (httpconnection.getresponsecode() == httpurlconnection.http_ok) { stream = httpconnection.getinputstream(); } } catch (exception ex) { ex.printstacktrace(); } return stream; } } }
remove line:
navdraweritems.add(new navdraweritem(navmenutitles[10], navmenuicons.getresourceid(10, -1))); and consider replacing block of near-identical calls loop:
for (int = 0; < 10; ++i) { navdraweritems.add(new navdraweritem(navmenutitles[i], navmenuicons.getresourceid(i, -1))); }
Comments
Post a Comment