دلیل خطای Unfrotunately, myApp has stopped چیست؟
سلام
وقتی برنامه رو اجرا می کنم هیچ مشکلی ندارم ، اما وقتی برنامه از حالت portrate به Landscape یا برعکس قرار می گیره برنامه بسته می شه و پیغام Unfrotunately, myApp has stopped.
ممنون میشم دلیل این خطا رو بگید
این اتفاق دلایل زیادی میتونه داشته باشه که 2 تا از عمده ترین هاشو اینجا مینویسم:
1. اگر برای حالت landscape لایه جدا طراحی کرده باشید و بعد فراموش کردید که id المنت ها رو وارد کندی یا اشتباه وارد کرده باشید میتونه باعث crash برنامه بشه.
2. دلیل دیگه این میتونه باشه که شما از اکتیویتی دیگری به این اکتیویتی مقداری پاس دادید و توی این اکتیویتی با getExtra مقدار رو میگیرید و وقتی که گوشی رو از حالت portrait به landscape تغییر حالت میدید، اکتیویتی restart میشه که این عمل باعث میشه Extra یی که به این اکتیویتی فرستاده شده از بین بره. پس اگر برای getExtra شرط null بودن رو بررسی نکردید با خطای NullPointerException روبرو میشید که همین میتونه عامل crash کردن برنامه باشه.
اگر موارد بالا علت کرش کردن برنامه شما نیست متن خطای logCat رو با دقت مطالعه کنید تا علت خطا رو متوجه بشید، یا این که متن خطای logCat رو اینجا قرار بدید.
will FindClass com/android/internal/os/RuntimeInit
error opening trace file: No such file or directory (2)
FATAL EXCEPTION: main
java.lang.NullPointerException
at android.support.v4.app.FragmentManagerImpl.saveFragmentBasicState(FragmentManager.java:1576)
at android.support.v4.app.FragmentManagerImpl.saveAllState(FragmentManager.java:1617)
at android.support.v4.app.FragmentActivity.onSaveInstanceState(FragmentActivity.java:481)
at com.actionbarsherlock.app.SherlockFragmentActivity.onSaveInstanceState(SherlockFragmentActivity.java:127)
at android.app.Activity.performSaveInstanceState(Activity.java:1147)
at android.app.Instrumentation.callActivityOnSaveInstanceState(Instrumentation.java:1216)
at android.app.ActivityThread.handleRelaunchActivity(ActivityThread.java:3666)
at android.app.ActivityThread.access$700(ActivityThread.java:141)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1240)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5041)
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:793)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
at dalvik.system.NativeStart.main(Native Method)
CreativeBoy نه این موارد نیست، جالب اینجاس وقتی توی آخرین ورژن اکلیپس می نویسم هیچ مشکلی پیش نمیاد ولی توو اکلیپسی که استاد دادن می نویسم ارور میده. توو جفت اکلیپسا دقیقا یه کار می کنم.
با توجه به این که خطا از نوع NullPointerException هست پس به نظر من موضوع اینه !
- شما در onCreate یا هر متد دیگه ای از یک متغییر استفاده کردید ، بعد از چرخش صفحه مقدار این متغییر null میشه ، پس خطا منطقی به نظر میاد
برای جلوگیری از این اتفاق قبلا خیلی صجبت شده ، سرچ کنید ، اما این که واقعا مشکل اینه یا نه نیاز به سورس کد هم داره !
سلام منم این مشکل دارم
log کنسول
[2014-11-03 01:29:42 - ddmlib] An established connection was aborted by the software in your host machine
java.io.IOException: An established connection was aborted by the software in your host machine
at sun.nio.ch.SocketDispatcher.write0(Native Method)
at sun.nio.ch.SocketDispatcher.write(Unknown Source)
at sun.nio.ch.IOUtil.writeFromNativeBuffer(Unknown Source)
at sun.nio.ch.IOUtil.write(Unknown Source)
at sun.nio.ch.SocketChannelImpl.write(Unknown Source)
at com.android.ddmlib.JdwpPacket.writeAndConsume(JdwpPacket.java:213)
at com.android.ddmlib.Client.sendAndConsume(Client.java:642)
at com.android.ddmlib.HandleHeap.sendREAQ(HandleHeap.java:348)
at com.android.ddmlib.Client.requestAllocationStatus(Client.java:488)
at com.android.ddmlib.DeviceMonitor.createClient(DeviceMonitor.java:835)
at com.android.ddmlib.DeviceMonitor.openClient(DeviceMonitor.java:803)
at com.android.ddmlib.DeviceMonitor.processIncomingJdwpData(DeviceMonitor.java:763)
at com.android.ddmlib.DeviceMonitor.deviceClientMonitorLoop(DeviceMonitor.java:652)
at com.android.ddmlib.DeviceMonitor.access$100(DeviceMonitor.java:44)
at com.android.ddmlib.DeviceMonitor$3.run(DeviceMonitor.java:580)
پیغام ها در log
10-30 17:08:50.608: V/PhoneStatusBar(141): setLightsOn(true)
10-30 17:08:50.698: D/gralloc_goldfish(10413): Emulator without GPU emulation detected.
10-30 17:08:50.758: I/ActivityManager(88): Displayed com.uncocoder.course.app.startup4/.Startup4Activity: +1s276ms
10-30 17:08:51.518: W/InputManagerService(88): Starting input on non-focused client com.android.internal.view.IInputMethodClient$Stub$Proxy@41454e58 (uid=10013 pid=182)
10-30 17:08:51.538: W/NetworkManagementSocketTagger(88): setKernelCountSet(10013, 0) failed with errno -2
10-30 17:12:17.449: W/ThrottleService(88): unable to find stats for iface rmnet0
10-30 17:12:17.668: D/dalvikvm(88): GC_CONCURRENT freed 548K, 9% free 11602K/12679K, paused 6ms+12ms
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .