2016-09-28 6 views
3

Meine Anwendung schließt jedes Mal, wenn ich versuche, die Bilder zu sehen. Kannst du erklären warum?Crash mit Glide auf Android App

Ich denke, vielleicht ist das Problem die Zeichenfolge Glide.with(getApplicationContext()), vielleicht ist es nicht korrekt. Aber für Android Studio habe ich keine Fehler:

Alle anderen Elemente sind in Ordnung, das Problem ist nur gleiten.

Update: Die Show Bilder folgen nicht der Liste der Array. Brauche eine Lösung.

public Adapter(Context context, int resource, List<MovieModel> objects) { 
     super(context, resource, objects); 
     ModelList = objects; 
     this.resource = resource; 
     inflater = (LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE); 
    } 
..... 
    try { 
    Glide.with(MainActivity.this)//getApplicationContext() 
      .load(ModelList.get(position).getFruits()) 
      .into(imageView); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 

Edit:

@Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
    ViewHolder holder = null; 
    if(convertView == null){ 
     holder = new ViewHolder(); 
     convertView = inflater.inflate(resource, null); 
     holder.fruitsfoto = (ImageView)convertView.findViewById(R.id.fruits); 
     holder.fruitsname = (TextView)convertView.findViewById(R.id.name); 
1)holder.image = (TextView)convertView.findViewById(R.id.pics); 
2)ImageView imageView = (ImageView)convertView.findViewById(R.id.pics);    
convertView.setTag(holder); 
//the first cause a crash 
//the second return "Variable 'imageView is never used'" 

Dies ist die Konsole Fehler:

09-28 17:19:42.079 30111-30111/app E/AndroidRuntime: FATAL EXCEPTION: main 
              Process: app, PID: 30111 
              java.lang.NullPointerException 
              at app$1.onResourceReady(MainActivity.java:309) 
              at app$1.onResourceReady(MainActivity.java:301) 
              at com.bumptech.glide.request.GenericRequest.onResourceReady(GenericRequest.java:522) 
              at com.bumptech.glide.request.GenericRequest.onResourceReady(GenericRequest.java:507) 
              at com.bumptech.glide.load.engine.EngineJob.handleResultOnMainThread(EngineJob.java:158) 
              at com.bumptech.glide.load.engine.EngineJob.access$100(EngineJob.java:22) 
              at com.bumptech.glide.load.engine.EngineJob$MainThreadCallback.handleMessage(EngineJob.java:202) 
              at android.os.Handler.dispatchMessage(Handler.java:98) 
              at android.os.Looper.loop(Looper.java:146) 
              at android.app.ActivityThread.main(ActivityThread.java:5511) 
              at java.lang.reflect.Method.invokeNative(Native Method) 
              at java.lang.reflect.Method.invoke(Method.java:515) 
              at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1283) 
              at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099) 
              at dalvik.system.NativeStart.main(Native Method) 
+2

Beitrag logcat Fehler – Nikhil

+1

Glide.with (getApplicationContext()) ersetzen mit Glide.with (MainActivity.this) –

+0

Wenn Sie Problem konfrontiert sind Bilder in Bezug auf falsch gesetzt sind, können Sie sich den Code Ihrer teilen Adapter hier. –

Antwort

2

Bitte überprüfen Sie, ob Sie die INTERNET Erlaubnis in Ihrer Anwendung manifestieren hinzugefügt haben?

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="viewpager.nested.example.com.testapplicationforso"> 

    <uses-permission android:name="android.permission.INTERNET" /> 

    <application 
     ... 
    </application> 

</manifest> 

Und ja, es ist immer gut in einer try/catch Anweisung Ihr glide Bildladecodesegment zu haben.

try { 
    Glide.with(getApplicationContext()).load(yourUrl).into(img); 
} catch (Exception e) { 
    e.printStackTrace(); 
} 

Update:

über die Bilder falsch platzierter - ich konnte sehen, dass in Ihrer getView Funktion, Sie nicht die ImageView richtig gefunden haben. Sie müssen die ImageView innerhalb convertView wie die anderen Elemente in der Liste so finden.

holder.image = (TextView)convertView.findViewById(R.id.pics); 

// Then load the image in holder.image 
Glide.with(MainActivity.this)//getApplicationContext() 
    .load(ModelList.get(position).getFruits()) 
    .into(holder.image); 
+0

Ich ändere den Code für versuchen Sie Ihre Lösung: versuchen {Glide.with (MainActivity.this) // getApplicationContext() .load (movieModellList.get (Position). GetImage()) . Inno (Bildansicht); } catch (Ausnahme e) { e.printStackTrace(); } Es funktioniert, ich sehe die Bilder, aber ich habe verschiedene Probleme: Die Bilder zeigen nicht die Liste der Array: zum Beispiel das Foto von Apple erscheint in Bananenliste, und wenn wischen Sie es weg von Bananenliste und erscheint stattdessen ein Foto einer Banane. Warum sehe ich sie nicht in der richtigen Reihenfolge? – Question

+0

Ich habe unter Ihrer Frage auch einen Kommentar hinzugefügt. Bitte teilen Sie Ihren Adapter Code in der Frage. Versuchen Sie, Ihre Frage mit dem Adaptercode zu bearbeiten. –

+0

Ich habe meinen Beitrag geändert. – Question