2012-01-31 1 views
0

Я пытаюсь запустить MergeAdapterDemo от Commonsguy. Код компилируется и работает нормально, когда я комментирую вызовы addView. Например, это работает отлично:Ошибка MergeAdapterDemo при вызове addView()

public void onCreate(Bundle icicle) { 
    super.onCreate(icicle); 
    setContentView(R.layout.main); 

    adapter=new MergeAdapter(); 
    arrayAdapter=buildFirstList(); 
    adapter.addAdapter(arrayAdapter); 
    //adapter.addView(buildButton(), true); 
    adapter.addAdapter(buildSecondList()); 
    //adapter.addView(buildLabel()); 
    adapter.addAdapter(buildSecondList()); 

Однако, это приведет к краху:

public void onCreate(Bundle icicle) { 
    super.onCreate(icicle); 
    setContentView(R.layout.main); 

    adapter=new MergeAdapter(); 
    arrayAdapter=buildFirstList(); 
    adapter.addAdapter(arrayAdapter); 
    adapter.addView(buildButton(), true); 
    adapter.addAdapter(buildSecondList()); 
    adapter.addView(buildLabel()); 
    adapter.addAdapter(buildSecondList()); 

Вот стек вызовов, когда происходит сбой:

Thread [<1> main] (Suspended (exception NoClassDefFoundError)) 
    MergeAdapter.addViews(List, boolean) line: 101 
    MergeAdapter.addView(View, boolean) line: 78  
    MergeAdapter.addView(View) line: 64 
    MergeAdapterDemo.onCreate(Bundle) line: 52 
    Instrumentation.callActivityOnCreate(Activity, Bundle) line: 1047 
    ActivityThread.performLaunchActivity(ActivityThread$ActivityClientRecord, Intent) line: 1611  
    ActivityThread.handleLaunchActivity(ActivityThread$ActivityClientRecord, Intent) line: 1663 
    ActivityThread.access$1500(ActivityThread, ActivityThread$ActivityClientRecord, Intent) line: 117 
    ActivityThread$H.handleMessage(Message) line: 931 
    ActivityThread$H(Handler).dispatchMessage(Message) line: 99 
    Looper.loop() line: 123 
    ActivityThread.main(String[]) line: 3683  
    Method.invokeNative(Object, Object[], Class, Class[], Class, int, boolean) line: not available [native method] 
    Method.invoke(Object, Object...) line: 507 
    ZygoteInit$MethodAndArgsCaller.run() line: 839 
    ZygoteInit.main(String[]) line: 597 
    NativeStart.main(String[]) line: not available [native method] 

Я использую скомпилированную .jar файл, который был расположен в разделе загрузки его страницы.

Любые предложения о том, как заставить это работать? Благодаря!

ответ

1

линия 101 является

addAdapter(new SackOfViewsAdapter(views)); 

Но у вас нет SackOfViewsAdapter класса.

https://github.com/commonsguy/cwac-merge/blob/master/README.markdown говорит, что:

Этот проект требует CWAC SackOfViewsAdapter. Копию совместимого JAR можно найти в каталоге libs/проекта , хотя вы можете попробовать более новые, или те, которые у вас есть исправлены.

Поэтому вам необходимо включить эту библиотеку в свой проект.

+0

Вы были абсолютно правы. Я полагал, что он будет включен в банку для MergeAdapter. Спасибо за помощь! – champ12

0

Опубликуйте здесь свой XML-файл.

Также проверьте правильность использования тега MergeAdapter в формате XML.

Смежные вопросы