3

내가 가지고 실행시 다음과 같은 오류 : (모든 코드가 결국 표시됩니다.) 다음 줄에java.lang.NoClassDefFoundError가, 안드로이드 스튜디오 2.6.0, 내부 클래스,

java.lang.NoClassDefFoundError: se.domain.climbsweden.Area$MyFragmentPagerAdapter 

:

this.mPagerAdapter = new MyFragmentPagerAdapter(f, fragments); 

나는 오류가 클래스가 런타임에 사용할 수없는 경우에서 오는 이해하지만 컴파일에 사용할 수있었습니다한다. Android에서도 같은 방식으로 작동합니까? 나는 그것이 내부 클래스이므로이 이상한 것을 발견한다. Android Studio 2.6.0을 사용하고 있습니다.

코드의 목표는 viewpager 및 기본 활동을 사용하여 안드로이드에 보내 주시면 구현하는 것입니다. 그 중 v13 지원 패키지를 사용합니다.

이 오류는 잘못된 수입 지원 라이브러리와 관련 될 수 있습니까?

미리 감사드립니다. 이런 종류의 오류는 내게 동기를 부여합니다! 이것은 안드로이드 플러그인 일식과 관련이있을 수

import java.util.List; 
import java.util.Vector; 
import android.app.Activity; 
import android.app.FragmentManager; 
import android.os.Bundle; 
import android.app.Fragment; 
import android.support.v13.app.FragmentPagerAdapter; 
import android.support.v4.view.ViewPager; 


public class Area extends Activity implements AreaFact.FactListener, AreaWall.WallListener { 

    private MyFragmentPagerAdapter mPagerAdapter; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     super.setContentView(R.layout.activity_area); 
     this.initialisePaging(); 
    } 

    /** 
    * Initialise the fragments to be paged 
    */ 
    private void initialisePaging() { 

     List<Fragment> fragments = new Vector<Fragment>(); 
     fragments.add(Fragment.instantiate(this, AreaFact.class.getName())); 
     fragments.add(Fragment.instantiate(this, AreaWall.class.getName())); 
     FragmentManager f = super.getFragmentManager(); 
     this.mPagerAdapter = new MyFragmentPagerAdapter(f, fragments); 
     // 
     ViewPager pager = (ViewPager)super.findViewById(R.id.area_pager); 
     pager.setAdapter(this.mPagerAdapter); 
    } 

    private class MyFragmentPagerAdapter extends FragmentPagerAdapter { 
     private List<Fragment> fragments; 

     public MyFragmentPagerAdapter(FragmentManager fm, List<Fragment> fragments) { 
      super(fm); 
      this.fragments = fragments; 
     } 
     @Override 
     public Fragment getItem(int position) { 
      return this.fragments.get(position); 
     } 
     @Override 
     public int getCount() { 
      return this.fragments.size(); 
     } 

    } 
} 

답변

1

복사 SDK_PATH에서 "안드로이드 지원 - v13.jar"\ 엑스트라 \ 안드로이드 \ 지원 \의 V13; 거기에 없으면 SDK 관리자를 사용하여 "Extras/Android Support Library"를 lib/폴더에 설치하거나 업데이트하십시오.

그 다음 잘 작동하는 경우 (나를 위해 일한)

그 다음면 ClassNotFound 예외를 V4 관련 오류 제공하는 경우 -. SDK_PATH에서> 복사 "안드로이드 지원-v4.jar"\ 엑스트라 안드로이드의 \ support \를 \ v4; 그것이 없으면 SDK 관리자를 사용하여 lib/폴더에 "Extras/Android Support Library"를 설치하거나 업데이트하십시오.

관련 문제