尝试在空对象引用上调用虚拟方法 'int java.util.ArrayList.size()' 的操作。

huangapple go评论93阅读模式
英文:

Attempt to invoke virtual method 'int java.util.ArrayList.size()' on a null object reference android studio

问题

以下是翻译好的内容:

我正在尝试使用Android Studio构建一个应用程序。我正在按照一个教程进行操作,但问题是,那个人在暂停屏幕以启动模拟器时,当他再次播放时,有一段代码丢失了。我不确定他确切做了什么,但我尝试了我所有可以找到的选项。

我遇到了这个错误:
java.lang.NullPointerException: 尝试调用空对象引用上的 'int java.util.ArrayList.size()' 的虚拟方法

代码:

  1. public void onResponse(Call<Users> call, Response<Users> response) {
  2. if (response.isSuccessful()) {
  3. mediaObjectList = (ArrayList<MediaObject>) response.body().getAllPosts();
  4. recyclerview.setMediaObjects(mediaObjectList);
  5. VideoPlayerRecyclerAdapter adapter = new VideoPlayerRecyclerAdapter(mediaObjectList, initGlide());
  6. recyclerview.setAdapter(adapter);
  7. adapter.notifyDataSetChanged();
  8. recyclerview.setKeepScreenOn(true);
  9. recyclerview.smoothScrollToPosition(mediaObjectList.size()+1);
  10. } else {
  11. Toast.makeText(HomeActivity.this, "网络错误。", Toast.LENGTH_SHORT).show();
  12. }
  13. }

我在这一行代码上遇到了错误:

recyclerview.smoothScrollToPosition(mediaObjectList.size()+1);

英文:

I am trying to build an app with android studio. I am following a tutorial but the thing is, the guy paused the screen to start the emulator and when he played it again a piece of code was missing. I don't know for sure what he did but I tried all of the options presented to me.

I am getting this error:
java.lang.NullPointerException: Attempt to invoke virtual method &#39;int java.util.ArrayList.size()&#39; on a null object reference

code:

  1. public void onResponse(Call&lt;Users&gt; call, Response&lt;Users&gt; response) {
  2. if (response.isSuccessful()) {
  3. mediaObjectList = (ArrayList&lt;MediaObject&gt;) response.body().getAllPosts();
  4. recyclerview.setMediaObjects(mediaObjectList);
  5. VideoPlayerRecyclerAdapter adapter = new VideoPlayerRecyclerAdapter(mediaObjectList, initGlide());
  6. recyclerview.setAdapter(adapter);
  7. adapter.notifyDataSetChanged();
  8. recyclerview.setKeepScreenOn(true);
  9. recyclerview.smoothScrollToPosition(mediaObjectList.size()+1);
  10. } else {
  11. Toast.makeText(HomeActivity.this, &quot;Network Error.&quot;, Toast.LENGTH_SHORT).show();
  12. }
  13. }

I'm getting the error on this line:

recyclerview.smoothScrollToPosition(mediaObjectList.size()+1);

答案1

得分: 1

  1. 检查是否`getAllPost()`有值或为空
  2. ***正确方式***
  3. public void onResponse(Call<Users> call, Response<Users> response) {
  4. if (response.isSuccessful()) {
  5. mediaObjectList = (ArrayList<MediaObject>) response.body().getAllPosts();
  6. if (mediaObjectList != null) {
  7. recyclerview.setMediaObjects(mediaObjectList);
  8. VideoPlayerRecyclerAdapter adapter = new VideoPlayerRecyclerAdapter(mediaObjectList, initGlide());
  9. recyclerview.setAdapter(adapter);
  10. adapter.notifyDataSetChanged();
  11. recyclerview.setKeepScreenOn(true);
  12. recyclerview.smoothScrollToPosition(mediaObjectList.size() + 1);
  13. } else {
  14. Toast.makeText(HomeActivity.this, "没有可用的帖子。", Toast.LENGTH_SHORT).show();
  15. }
  16. } else {
  17. Toast.makeText(HomeActivity.this, "网络错误。", Toast.LENGTH_SHORT).show();
  18. }
  19. }
英文:

Check if getAllPost() has value or not

Correct Way:

  1. public void onResponse(Call&lt;Users&gt; call, Response&lt;Users&gt; response) {
  2. if (response.isSuccessful()) {
  3. mediaObjectList = (ArrayList&lt;MediaObject&gt;) response . body ().getAllPosts();
  4. if (mediaObjectList != null) {
  5. recyclerview.setMediaObjects(mediaObjectList);
  6. VideoPlayerRecyclerAdapter adapter = new VideoPlayerRecyclerAdapter(mediaObjectList, initGlide());
  7. recyclerview.setAdapter(adapter);
  8. adapter.notifyDataSetChanged();
  9. recyclerview.setKeepScreenOn(true);
  10. recyclerview.smoothScrollToPosition(mediaObjectList.size() + 1);
  11. } else {
  12. Toast.makeText(HomeActivity.this, &quot;No Post Available.&quot;, Toast.LENGTH_SHORT).show();
  13. }
  14. }
  15. else {
  16. Toast.makeText(HomeActivity.this, &quot;Network Error.&quot;, Toast.LENGTH_SHORT).show();
  17. }
  18. }

huangapple
  • 本文由 发表于 2020年9月7日 02:24:41
  • 转载请务必保留本文链接:https://go.coder-hub.com/63767540.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定