3

我在运行时收到以下错误:(所有代码都显示在最后。)

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

在以下行:

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

据我了解,错误来自一个类在运行时不可用但在编译时可用。它在 Android 中的工作方式是否相同?我确实觉得这很奇怪,因为它是一个内部类。我正在使用 Android Studio 2.6.0 。

代码的目标是使用 viewpager 和本机 Activity 在 Android 中实现滑动。其中使用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();
        }

    }
}
4

2 回答 2

1

从 SDK_PATH\extras\android\support\v13 复制“android-support-v13.jar”;如果不存在,请使用 SDK 管理器将“Extras/Android 支持库”安装或更新到 lib/ 文件夹中。

如果它有效,那么很好。(为我工作)

如果它给出与 v4 classnotfound 异常相关的错误,则 -> 从 SDK_PATH\extras\android\support\v4 复制“android-support-v4.jar”;如果不存在,请使用 SDK 管理器将“Extras/Android 支持库”安装或更新到 lib/ 文件夹中

于 2014-02-26T09:48:18.237 回答
0

这可能与 eclipse android 插件有关,在 stackoverflow 上类似: Android java.lang.NoClassDefFoundError

于 2013-09-02T19:18:18.850 回答