2014-12-17 3 views
0

나는 안드로이드 응용 프로그램을 개발하고 완벽하게 실행하지만 때때로 이상한 오류가 발생합니다 :super.onStart()에서 이상한 오류가 발생했습니다.

응용 프로그램이 이전에 실행했다 당신이 그것을 다시, 단지 때때로, 그것은 나에게 다음 오류가 발생 실행하면 : android.database.CursorIndexOutOfBoundsException: Index 0 requested, with a size of 0합니다.

이상한 부분은 (적어도 나를 위해, 나는 안드로이드 전문가가 아니기 때문입니다.) 그 중 하나가 항상 발생하지 않는다는 것은 오류 로그에 나타나는 첫 번째 점은 super.onStart();입니다 내 main.java의 줄과 나는 그 선 앞에 아무것도 없다.

... 
    at dalvik.system.NativeStart.main(Native Method) 
    Caused by: android.database.CursorIndexOutOfBoundsException: Index 0 requested, with a size of 0 
    at android.database.AbstractCursor.checkPosition(AbstractCursor.java:418) 
    at android.database.AbstractWindowedCursor.checkPosition(AbstractWindowedCursor.java:136) 
    at android.database.AbstractWindowedCursor.getInt(AbstractWindowedCursor.java:68) 
    at mysql.BaseDatos.getAsignaturaDataBase(BaseDatos.java:233) 
    at com.tfd.myapp.FragmentAsig.onCreateView(FragmentAsig.java:269) 
    at android.support.v4.app.Fragment.performCreateView(Fragment.java:1478) 
    at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:927) 
    at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1104) 
    at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1086) 
    at android.support.v4.app.FragmentManagerImpl.dispatchActivityCreated(FragmentManager.java:1877) 
    at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:552) 
    at com.tfd.myapp.Principal.onStart(Principal.java:108) 
    at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1166) 
    at android.app.Activity.performStart(Activity.java:5254) 
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2043) 
... 

것은이 가능할 수있는 방법 :

여기
@Override 
protected void onStart() { 
    super.onStart(); 

    mPager.setOffscreenPageLimit(4); 

    mPager.setPageTransformer(true, new ZoomOutPageTransformer()); 
} 

오류 로그입니다 : 여기

내 ONSTART 방법?

+0

어떤 활동 수업을 연장합니까? – akohout

+0

이것이 도움이되는지 확실하지 않은 경우 : https://github.com/android/platform_frameworks_base/blob/master/core/java/android/app/Activity.java#L1160 그런 충돌을 디버그 할 수있는 기회를 얻었습니까? 또는 비 디버그 모드에서만 발생합니까? :) – akohout

+1

수퍼 클래스에 커서가있는 경우 커서 개체를 사용하기 전에 데이터가 있는지 확인하십시오. if (cursor.moveToFirst()) { // 커서에 데이터가 들어 있으면 첫 번째 객체입니다. 그런 다음 여기에서 일하십시오 } – vembutech

답변

1

onStart()은 보류중인 프래그먼트 트랜잭션을 실행합니다. 이 경우에는 FragmentAsig을 인스턴스화하고 버그가 있습니다. 특히 :

at mysql.BaseDatos.getAsignaturaDataBase(BaseDatos.java:233) 
at com.tfd.myapp.FragmentAsig.onCreateView(FragmentAsig.java:269) 

당신은 데이터가없는 CursorgetInt()를 호출하고 있습니다. 예를 들어 확인해야합니다. moveToFirst()이 (가) 성공했습니다.

+0

정보 및 도움을 제공해 주셔서 감사합니다! – JCoder

관련 문제