Это происходит только при использовании библиотеки совместимости для устройств до версии 3.0
Я получаю сообщение об ошибке, которое не могу определить. У меня есть Activity с ListFragment и стандартным фрагментом. Он аналогичен примеру, приведенному в разделе для разработчиков руководства Android Dev.
Подкласс ListFragment (без переопределения функций)
public class ItemListFragment extends ListFragment
MainActivity
public class ItemViewerActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.item_viewer);
}
}
XML-макет для MainActivity
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="horizontal">
<fragment class="org.example.ItemListFragment"
android:id="@+id/item_list_fragment"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_weight="1" />
<FrameLayout
android:id="@+id/item_info_frame"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_weight="1" />
</LinearLayout>
Сообщение об ошибке от LogCat
ERROR / AndroidRuntime: вызвано: java.lang.
#include Я написал следующий код с использованием библиотеки pthread POSIX: При выполнении кода я получил следующий результат: Как я изучал, поток (pid2), вызывающий pthread_join, будет блокировать, пока поток, переданный в аргументе (pid1), не вызовет pthread_exit (). А pthread_exit () используется для остановки выполнения определенного потока, позволяя всем остальным продолжать выполнение. Я хочу знать, почему я наконец получил ошибку сегментации. Пожалуйста, объясните мне как следует. #include<stdio.h>
#include<stdlib.h>
#include<pthread.h>
pthread_t pid1,pid2;
void *test(void *arg)
{
void **end;
printf("\nNew Thread ID: 0x%x\n",(unsigned int)pid2);
pthread_join(pid1,end);
printf("\nNew Thread going to go off\n");
printf("\nNew Thread ID: 0x%x\n",(unsigned int)pid2);
return ((void *)NULL);
}
int main()
{
pid1 = pthread_self();
pthread_create(&pid2,NULL,test,NULL);
printf("\nMain Thread ID: 0x%x\n",(unsigned int)pid1);
sleep(2);
printf("\nI am going off\n");
pthread_exit(0);
}
Main Thread ID: 0xb7880b30
New Thread ID: 0xb787eb70
I am going off
Segmentation fault