';intandroid.graphics.Bitmap.getWidth()';关于空对象引用

';intandroid.graphics.Bitmap.getWidth()';关于空对象引用,android,api,android-studio,bitmap,nullpointerexception,Android,Api,Android Studio,Bitmap,Nullpointerexception,我正在使用api获取数据,当我从UserProfileActivity按back按钮并返回ImageViewerActivity时,我得到了这个错误,我已经搜索了StackOverflow,但找不到解决方案。如果有人能告诉我解决方案,那就太好了 //用户档案活动 protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layo

我正在使用api获取数据,当我从UserProfileActivity按back按钮并返回ImageViewerActivity时,我得到了这个错误,我已经搜索了StackOverflow,但找不到解决方案。如果有人能告诉我解决方案,那就太好了

//用户档案活动

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_user_profile);
    profileImg=(CircularImageView)findViewById(R.id.userImg);
    name=(TextView)findViewById(R.id.profileUserName);
    location=(TextView)findViewById(R.id.profileLocation);
    bio=(TextView)findViewById(R.id.profileBio);
    total_photos=(TextView)findViewById(R.id.profilePhotos);
    instName=(TextView)findViewById(R.id.profileInsta);

    rv=(RecyclerView)findViewById(R.id.profileRv);
    gridLayoutManager = new GridLayoutManager(this, 2);
    rv.hasFixedSize();
    rv.setLayoutManager(gridLayoutManager);

    Glide.with(this)
            .load(getIntent().getStringExtra("profileImg"))
            .centerCrop()
            .into(profileImg);

    name.setText(getIntent().getStringExtra("user"));
    location.setText(getIntent().getStringExtra("location"));
    bio.setText(getIntent().getStringExtra("bio"));
    instName.setText(getIntent().getStringExtra("instaName"));
    username=getIntent().getStringExtra("username");

    //RECENT PHOTOS FIRST FETCH
    UnsplashService service= ApiClient.getClient().create(UnsplashService.class);
    Call<List<PhotoModel>> call=service.getUserProfile(username,API_KEY,1,PAGE_LIMIT);
    call.enqueue(new Callback<List<PhotoModel>>() {
        @Override
        public void onResponse(Call<List<PhotoModel>> call, Response<List<PhotoModel>> response) {
            List<PhotoModel> photoModelList=response.body();
            adapter = new InfinitePhotoAdapter(UserProfileActivity.this, photoModelList);
            adapter.notifyDataSetChanged();
            rv.setAdapter(adapter);

        }

        @Override
        public void onFailure(Call<List<PhotoModel>> call, Throwable t) {

        }
    });

    infiniteScrollListener = new InfiniteScrollListener(gridLayoutManager) {
        @Override
        public void onLoadMore(int page, int totalItemsCount, RecyclerView view) {
            updatephotos(username,page);
        }
    };

    rv.addOnScrollListener(infiniteScrollListener);

}
}

//这就是错误所在

E/AndroidRuntime: FATAL EXCEPTION: main
              Process: com.sohail.wallupwallpapers, PID: 2837
              java.lang.RuntimeException: Unable to destroy activity {com.sohail.wallupwallpapers/com.sohail.wallupwallpapers.Activities.UserProfileActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'int android.graphics.Bitmap.getWidth()' on a null object reference
                  at android.app.ActivityThread.performDestroyActivity(ActivityThread.java:4586)
                  at android.app.ActivityThread.handleDestroyActivity(ActivityThread.java:4609)
                  at android.app.ActivityThread.-wrap7(ActivityThread.java)
                  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1692)
                  at android.os.Handler.dispatchMessage(Handler.java:102)
                  at android.os.Looper.loop(Looper.java:154)
                  at android.app.ActivityThread.main(ActivityThread.java:6682)
                  at java.lang.reflect.Method.invoke(Native Method)
                  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1520)
                  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1410)
               Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'int android.graphics.Bitmap.getWidth()' on a null object reference
                  at android.graphics.Bitmap.createScaledBitmap(Bitmap.java:750)
                  at com.pkmmte.view.CircularImageView.refreshBitmapShader(CircularImageView.java:341)
                  at com.pkmmte.view.CircularImageView.invalidate(CircularImageView.java:262)
                  at android.widget.ImageView.setImageDrawable(ImageView.java:514)
                  at com.bumptech.glide.request.target.ImageViewTarget.onLoadCleared(ImageViewTarget.java:70)
                  at com.bumptech.glide.request.GenericRequest.clear(GenericRequest.java:323)
                  at com.bumptech.glide.manager.RequestTracker.clearRequests(RequestTracker.java:94)
                  at com.bumptech.glide.RequestManager.onDestroy(RequestManager.java:221)
                  at com.bumptech.glide.manager.ActivityFragmentLifecycle.onDestroy(ActivityFragmentLifecycle.java:64)
                  at com.bumptech.glide.manager.SupportRequestManagerFragment.onDestroy(SupportRequestManagerFragment.java:147)
                  at android.support.v4.app.Fragment.performDestroy(Fragment.java:2588)
                  at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1566)
                  at android.support.v4.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1759)
                  at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1827)
                  at android.support.v4.app.FragmentManagerImpl.dispatchStateChange(FragmentManager.java:3244)
                  at android.support.v4.app.FragmentManagerImpl.dispatchDestroy(FragmentManager.java:3235)
                  at android.support.v4.app.FragmentController.dispatchDestroy(FragmentController.java:265)
                  at android.support.v4.app.FragmentActivity.onDestroy(FragmentActivity.java:390)
                  at android.support.v7.app.AppCompatActivity.onDestroy(AppCompatActivity.java:209)
                  at android.app.Activity.performDestroy(Activity.java:7195)
                  at android.app.Instrumentation.callActivityOnDestroy(Instrumentation.java:1161)
                  at android.app.ActivityThread.performDestroyActivity(ActivityThread.java:4573)
                  at android.app.ActivityThread.handleDestroyActivity(ActivityThread.java:4609) 
                  at android.app.ActivityThread.-wrap7(ActivityThread.java) 
                  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1692) 
                  at android.os.Handler.dispatchMessage(Handler.java:102) 
                  at android.os.Looper.loop(Looper.java:154) 
                  at android.app.ActivityThread.main(ActivityThread.java:6682) 
                  at java.lang.reflect.Method.invoke(Native Method) 
                  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1520) 
                  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1410) 

这看起来像是您正在使用的第三方代码中的错误。请从他们的项目中查看此bug以获得帮助,如果它看起来与您看到的问题相同,请提供帮助


他们建议设置一个占位符图像可以防止这个问题。

只需添加一个占位符即可

滑翔

RequestOptions requestOptions = new RequestOptions();
requestOptions.placeholder(R.drawable.ic_placeholder);
requestOptions.error(R.drawable.ic_error);

Glide.with(context)
     .setDefaultRequestOptions(requestOptions)
     .load(url).into(holder.imageView);
毕加索

Picasso.with(context)
    .load(url)
    .placeholder(R.drawable.placeholder)
    .into(imageView)
Picasso.with(context)
    .load(url)
    .placeholder(R.drawable.placeholder)
    .into(imageView)
 if (userImageUrl.matches("(?!file\\b)\\w+?:\\/\\/.*")) {
        // Not a local file 
        // image server url
        LogClass.e("userImageUrl", "Not a local file");
        Glide.with(DrawerActivity.this).load(userImageUrl).into(imgProfile);

    } else {
        // local path 
        LogClass.e("userImageUrl", "local file");
        File file = new File(userImageUrl);
        String filePath = file.getPath();
        Bitmap bitmap = BitmapFactory.decodeFile(filePath);
        imgProfile.setImageBitmap(bitmap);

    }