아무리 뛰어난 개발자가 있더라도 정확하게 아는 에러메세지는 아주 한정적입니다. 대부분은 에러로그, 디버그, 관련 문서 등을 통해 찾아나게 됩니다. 님이 해보셔야 할 것은 ArrayAdapter가 어떻게 사용되어야 하는지 확인해 보는 겁니다. 이슈가 ArrayAdapter 의 생성자 사용법에 있기 때문에 관련 API를 확인하시는 것 부터 해보시는 게 좋습니다.
https://developer.android.com/reference/android/widget/ArrayAdapter
ArrayAdapter(Context context, int resource)
ArrayAdapter(Context context, int resource, int textViewResourceId)
ArrayAdapter(Context context, int resource, T[] objects)
ArrayAdapter(Context context, int resource, int textViewResourceId, T[] objects)
ArrayAdapter(Context context, int resource, List<T> objects)
ArrayAdapter(Context context, int resource, int textViewResourceId, List<T> objects)
위에 나온 게 모든 ArrayAdapter가 가질 수 있는 생성자의 형태입니다. 변수이름들을 잘 보시구요, 좀 더 디테일한 의미는 문서에서 직접 확인해 보세요.
문제는 님의 코드에는 위에서 언급된 생성자에 적합한 형태가 없다는 것입니다. 만약 제가 말씀드리는게 이해가지 않으시다면, 자바를 좀 더 들여다 보신 후에 진행하시는 것이 좋을 것 같습니다.
인자가 4개 들어가는 생성자는
ArrayAdapter(Context context, int resource, int textViewResourceId, T[] objects)
ArrayAdapter(Context context, int resource, int textViewResourceId, List<T> objects)
위의 두개입니다.
둘다 세번째 인자는 TextView의 ID입니다. 왜냐하면 ArrayAdapter가 내부적으로 이 TextView를 찾아서 처리를 해줄 것이기 때문입니다. 근데 main_ScrollList는 ListView예요.
mainScrollList.setAdapter(new ArrayAdapter(...))
main_ScrollList는 Adapter를 할당해야 하는 ListView입니다. 아이템의 내용을 그려주어야하는 TextView가 아니예요.
참고로, ArrayAdapter의 설명을 읽어보면 ListView나 Spinner를 만들 때 사용한다고 되어 있습니다. ListView는 성능상의 문제 등으로 요즘은 사용하는 사람이 거의 없는 View입니다. 대부분의 개발자들은 RecyclerView를 사용합니다.