相关文章推荐
独立的奔马  ·  SMTP Errors - ...·  1 年前    · 
眼睛小的佛珠  ·  vue ...·  1 年前    · 
健身的钥匙  ·  JSON & GSON - 读取 JSON ...·  1 年前    · 
飘逸的烈马  ·  python - OSError - ...·  1 年前    · 
Collectives™ on Stack Overflow

Find centralized, trusted content and collaborate around the technologies you use most.

Learn more about Collectives

Teams

Q&A for work

Connect and share knowledge within a single location that is structured and easy to search.

Learn more about Teams

I'm using a simplecursortreeadapter to adapt retrieving data from an external sqlite database to an expendablelistview. and I'm using a viewbinder to adapt views. the app before adding the third bloc(in which glide is) was working fine..but after adding the bloc ..the apps stops.

public class MyViewBinder implements SimpleCursorTreeAdapter.ViewBinder {
@Override
public boolean setViewValue(View view, Cursor cursor, int columnIndex) {
    int viewID = view.getId();
    switch(viewID){
        case R.id.group1 :
            TextView groupName = (TextView) view;
            String groupname;
            groupname = cursor.getString(cursor.getColumnIndex(Database.DATABASE_GROUP_1));
            groupName.setText(groupname);
            break;
        case R.id.child1 :
            TextView friendName = (TextView) view;
            String friend_name;
            friend_name = cursor.getString(cursor.getColumnIndex(Database.DATABASE_CHILD_1));
            friendName.setText(friend_name);
            break;
        case R.id.child2 :
            ImageView contactProfile = (ImageView) view;
            byte[] imageBytes = cursor.getBlob(cursor.getColumnIndex(Database.DATABASE_CHILD_2));
            if(imageBytes != null ){
                // Pic image from database
                contactProfile.setImageBitmap(BitmapFactory.decodeByteArray(imageBytes, 0, imageBytes.length));
            }else {
                // If image not found in database , assign a default image
                contactProfile.setBackgroundResource(0);
            break;
        case R.id.child3 :
            String urls;
            urls = cursor.getString(cursor.getColumnIndex(Database.DATABASE_CHILD_3));
            ImageView url=findViewById(R.id.child3);
            Glide.with(MainActivity.this).load(urls).into(url);
            break;
    return true;

the build is successful and the apps opens but when i click on something the apps stops ..this is my error msg:

08-01 18:40:20.512 4772-4772/ma.ac.iav.databasewithjava D/AndroidRuntime: Shutting down VM
08-01 18:40:20.585 4772-4772/ma.ac.iav.databasewithjava E/AndroidRuntime: FATAL EXCEPTION: main
    Process: ma.ac.iav.databasewithjava, PID: 4772
    java.lang.NullPointerException: Argument must not be null
        at com.bumptech.glide.util.Preconditions.checkNotNull(Preconditions.java:31)
        at com.bumptech.glide.util.Preconditions.checkNotNull(Preconditions.java:25)
        at com.bumptech.glide.RequestBuilder.into(RequestBuilder.java:651)
        at ma.ac.iav.databasewithjava.MainActivity$MyViewBinder.setViewValue(MainActivity.java:99)
        at android.widget.SimpleCursorTreeAdapter.bindView(SimpleCursorTreeAdapter.java:220)
        at android.widget.SimpleCursorTreeAdapter.bindChildView(SimpleCursorTreeAdapter.java:254)
        at android.widget.CursorTreeAdapter.getChildView(CursorTreeAdapter.java:251)
        at android.widget.ExpandableListConnector.getView(ExpandableListConnector.java:451)
        at android.widget.AbsListView.obtainView(AbsListView.java:2372)
        at android.widget.ListView.makeAndAddView(ListView.java:2052)
        at android.widget.ListView.fillDown(ListView.java:786)
        at android.widget.ListView.fillSpecific(ListView.java:1494)
        at android.widget.ListView.layoutChildren(ListView.java:1790)
        at android.widget.AbsListView.onLayout(AbsListView.java:2171)
        at android.view.View.layout(View.java:19590)
        at android.view.ViewGroup.layout(ViewGroup.java:6053)
        at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1791)
        at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1635)
        at android.widget.LinearLayout.onLayout(LinearLayout.java:1544)
        at android.view.View.layout(View.java:19590)
        at android.view.ViewGroup.layout(ViewGroup.java:6053)
        at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
        at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
        at android.view.View.layout(View.java:19590)
        at android.view.ViewGroup.layout(ViewGroup.java:6053)
        at android.support.v7.widget.ActionBarOverlayLayout.onLayout(ActionBarOverlayLayout.java:443)
        at android.view.View.layout(View.java:19590)
        at android.view.ViewGroup.layout(ViewGroup.java:6053)
        at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
        at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
        at android.view.View.layout(View.java:19590)
        at android.view.ViewGroup.layout(ViewGroup.java:6053)
        at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1791)
        at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1635)
        at android.widget.LinearLayout.onLayout(LinearLayout.java:1544)
        at android.view.View.layout(View.java:19590)
        at android.view.ViewGroup.layout(ViewGroup.java:6053)
        at android.widget.FrameLayout.layoutChildren(FrameLayout.java:323)
        at android.widget.FrameLayout.onLayout(FrameLayout.java:261)
        at com.android.internal.policy.DecorView.onLayout(DecorView.java:758)
        at android.view.View.layout(View.java:19590)
        at android.view.ViewGroup.layout(ViewGroup.java:6053)
        at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:2484)
        at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2200)
        at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1386)
        at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6733)
        at android.view.Choreographer$CallbackRecord.run(Choreographer.java:911)
        at android.view.Choreographer.doCallbacks(Choreographer.java:723)
        at android.view.Choreographer.doFrame(Choreographer.java:658)
        at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:897)
        at android.os.Handler.handleCallback(Handler.java:789)
        at android.os.Handler.dispatchMessage(Handler.java:98)
        at android.os.Looper.loop(Looper.java:164)
        at android.app.ActivityThread.main(ActivityThread.java:6541)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:240)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:767)

this is version i'm using:

implementation 'com.github.bumptech.glide:glide:4.7.1'

annotationProcessor 'com.github.bumptech.glide:compiler:4.7.1'

with all respect..it's not duplicate ..i'm having a specific question and the problem is related to glide library ..i found this problem in other forums with no valid answers ..some suggested to use another type of library ... – Zouhair Aug 1, 2018 at 19:30
ImageView url=findViewById(R.id.child3);
Glide.with(MainActivity.this).load(urls).into(url);

Because url is null; check your "R.id.child3"

i'm sorry i'm new to android ..do you mean in sqlite database if the cases are null? ..no they have all same url for testing: imgur.com/lxs1Yjg – Zouhair Aug 1, 2018 at 19:04 before the Fatal EXCEPTION, there is an error: 08-01 19:06:19.193 5516-5516/ma.ac.iav.databasewithjava W/Glide: Failed to find GeneratedAppGlideModule. You should include an annotationProcessor compile dependency on com.github.bumptech.glide:compiler in your application and a @GlideModule annotated AppGlideModule implementation or LibraryGlideModules will be silently ignored – Zouhair Aug 1, 2018 at 19:08 2/ i'm new to android ..so sorry for this question, how to do Debug for NPE? and what possible action i'll have to do – Zouhair Aug 1, 2018 at 19:13 import com.bumptech.glide.Glide; import com.bumptech.glide.Registry; import com.bumptech.glide.annotation.GlideModule; import com.bumptech.glide.module.AppGlideModule; import com.firebase.ui.storage.images.FirebaseImageLoader; import com.google.firebase.storage.StorageReference; import java.io.InputStream; @GlideModule public class MyAppGlideModule extends AppGlideModule { @Override public void registerComponents(@NonNull Context context, @NonNull Glide glide, @NonNull Registry registry) { super.registerComponents(context, glide, registry); registry.append(StorageReference.class, InputStream.class, new FirebaseImageLoader.Factory());

Now, use GlideApp instead of Glide in the entire project.

Thanks for contributing an answer to Stack Overflow!

  • Please be sure to answer the question. Provide details and share your research!

But avoid

  • Asking for help, clarification, or responding to other answers.
  • Making statements based on opinion; back them up with references or personal experience.

To learn more, see our tips on writing great answers.