-
카테고리
-
세부 분야
모바일 앱 개발
-
해결 여부
미해결
null exception
22.02.21 15:19 작성 조회수 262
0
똑같이 코드 따라치고 실행을 했는데
null exception이 나옵니다.
java.lang.NullPointerException
at com.my.githubapi.MainActivity$onCreate$1.onResponse(MainActivity.kt:31)
for(str in response?.body()?.items!!){
어떻게 해결해야되나요?
답변을 작성해보세요.
0
개복치개발자
지식공유자2022.02.22
확인해보니 문제는 없어보이는데
api.getUsers()
이 부분이 오타가 있는지 확인하기 위해, 이 부분의 스크린샷과
이렇게 찍은 로그가 어떻게 나오는지 알려주실 수 있으신가요?
Log.e("MAINACTIVITY", response?.body()?.items.toString())
toqur7000
질문자2022.02.23
interface API {
@GET(":users?q=himchanyoon")
fun getUsers() : Call<UserData>
}
아 이부분에서 ':' 이부분이 에러였던것 같습니다... 감사합니다 해결하였습니다 :)
0
개복치개발자
지식공유자2022.02.21
안녕하세요
말 그대로 데이터가 null인 경우입니다.
for(str in response?.body()?.items!!){
여기 위에서
Log.d("DATA", response?.body()?.items!!.toString())
으로 데이터를 한번 확인해보시면 null이 나올겁니다.
어느 주소로 api요청을 하셨는지 전체 코드를 공유해주시면 도움드릴 수 있을 것 같아요 :)
toqur7000
질문자2022.02.22
class MainActivity : AppCompatActivity() {
val BASE_URL = "https://api.github.com/search/"
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val retrofit : Retrofit = Retrofit.Builder()
.baseUrl(BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.build()
var api = retrofit.create(API::class.java)
var call: Call<UserData> = api.getUsers()
call.enqueue(object : Callback<UserData> {
override fun onResponse(call: Call<UserData>, response: Response<UserData>?) {
// 호출이 실패했을 때 실행되는 코드
Log.e("MAINACTIVITY", response?.body()?.items.toString())
for(str in response?.body()?.items!!){
Log.e("MAINACTIVITY", str.login)
}
}
override fun onFailure(call: Call<UserData>?, t: Throwable?) {
//호출이 성공했을 때 실행되는 코드
}
})
}
}
강의와 똑같이 코드를 실행하였습니다.
답변 2