2017-09-17 6 views
-1

Die App hat eine Aktivität von listView und zeigt die von einem lokalen Server abgerufenen Elemente an. Wenn die App auf dem Emulator ausgeführt wird, stürzt sie jedes Mal ab und zeigt an, dass die App gestoppt wurde. Verwendet Volley, Picasso. Bitte überprüfen Sie meinen Code. Vielen Dank im Voraus. Mein json Ausgang istMeine ListView App stürzt immer ab und zeigt "App wurde gestoppt"

{"list":[{"name":"messi","price":"hundred","image":"http:\/\/192.168.28.2\/img\/messi.jpeg"},{"name":"goat","price":"twohundred","image":"http:\/\/192.168.28.2\/img\/goat.jpg"},{"name":"cristiano","price":"threehundred","image":"http:\/\/192.168.28.2\/img\/cr7.jpg"}]} 

Mein mainactivity xml Text ist

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" android:layout_height="match_parent"> 
    <ListView 
     android:id="@+id/myListView" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"/> 

</RelativeLayout> 

Meine benutzerdefinierten Layout xml ist list_items.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" android:layout_width="match_parent" 
    android:layout_height="match_parent"> 
    <TextView 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:id="@+id/tvName"/> 
    <TextView 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:id="@+id/tvprice"/> 
    <ImageView 
     android:layout_width="match_parent" 
     android:layout_height="100dp" 
     android:id="@+id/imageView"/> 

</LinearLayout> 

die Daten zu erhalten: player.java

package com.example.selvam.recyclerlist; 

/** 
* Created by SELVAM on 16-09-2017. 
*/ 

public class Player { 
    String name, price,imageUrl; 

    public Player(String name, String price, String imageUrl) { 
     this.name = name; 
     this.price = price; 
     this.imageUrl = imageUrl; 
    } 

    public String getName() { 
     return name; 
    } 

    public String getPrice() { 
     return price; 
    } 

    public String getImageUrl() { 
     return imageUrl; 
    } 
} 

Listview-Adapter ist

package com.example.selvam.recyclerlist; 

import android.content.Context; 


import android.support.annotation.NonNull; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.ArrayAdapter; 
import android.widget.ImageView; 
import android.widget.TextView; 

import com.squareup.picasso.Picasso; 

import java.util.List; 

/** 
* Created by SELVAM on 16-09-2017. 
*/ 

public class ListAdapter extends ArrayAdapter<Player> { 
    private List<Player> playerList; 
    private Context context; 
    public ListAdapter(List<Player> playerList,Context context){ 
    super(context,R.layout.list_items,playerList); 
    this.context=context; 
    this.playerList=playerList; 

} 

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     LayoutInflater inflater = LayoutInflater.from(context); 
     View listViewItem = inflater.inflate(R.layout.list_items, null, true); 

     //getting text views 
     TextView textViewName = (TextView) listViewItem.findViewById(R.id.tvName); 
     TextView textViewPrice = (TextView) listViewItem.findViewById(R.id.tvprice); 
     ImageView imageView = (ImageView) listViewItem.findViewById(R.id.imageView); 

     //Getting the hero for the specified position 
     Player player = playerList.get(position); 

     //setting hero values to textviews 
     textViewName.setText(player.getName()); 
     textViewPrice.setText(player.getPrice()); 
     Picasso.with(context) 
       .load(player.getImageUrl()) 
       .resize(50, 50) 
       .centerCrop() 
       .into(imageView); 

     //returning the listitem 
     return listViewItem; 

    } 

} 

Mainactivity

package com.example.selvam.recyclerlist; 

import android.app.ProgressDialog; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.widget.ListView; 
import android.widget.Toast; 

import com.android.volley.Request; 
import com.android.volley.RequestQueue; 
import com.android.volley.Response; 
import com.android.volley.VolleyError; 
import com.android.volley.toolbox.RequestFuture; 
import com.android.volley.toolbox.StringRequest; 
import com.android.volley.toolbox.Volley; 

import org.json.JSONArray; 
import org.json.JSONException; 
import org.json.JSONObject; 

import java.util.ArrayList; 
import java.util.List; 

public class MainActivity extends AppCompatActivity { 
    private static final String JSON_URL="http://192.168.28.2/signup/activities/getDataToListview.php"; 
    ListView listView; 
    List<Player>players; 
    ProgressDialog progressDialog; 



    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     listView=(ListView)findViewById(R.id.myListView); 
     players=new ArrayList<>(); 
     progressDialog=new ProgressDialog(this); 
     loadPlayerList(); 

    } 
    public void loadPlayerList(){ 
     progressDialog.setMessage("loading..."); 
     progressDialog.show(); 
     StringRequest stringRequest=new StringRequest(Request.Method.GET, JSON_URL, new Response.Listener<String>() { 
      @Override 
      public void onResponse(String response) { 
       progressDialog.dismiss(); 
       try { 
        JSONObject jsonObject=new JSONObject(response); 
        JSONArray jsonArray=jsonObject.getJSONArray("list"); 
        for (int i=0;i<jsonArray.length();i++){ 
         JSONObject jsonObject1=jsonArray.getJSONObject(i); 

         Player player=new Player(jsonObject1.getString("name"),jsonObject1.getString("price"),jsonObject1.getString("image")); 

         players.add(player); 
        } 
        ListAdapter listAdapter=new ListAdapter(players,getApplicationContext()); 
        listView.setAdapter(listAdapter); 




       } catch (JSONException e) { 
        e.printStackTrace(); 
       } 

      } 
     }, new Response.ErrorListener() { 
      @Override 
      public void onErrorResponse(VolleyError error) { 
       Toast.makeText(getApplicationContext(), error.getMessage(), Toast.LENGTH_SHORT).show(); 

      } 
     }); 
     RequestQueue requestQueue= Volley.newRequestQueue(this); 
     requestQueue.add(stringRequest); 
    } 
} 

Mein Manifest-Datei

ist
<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.example.selvam.recyclerlist"> 
<uses-permission android:name="android.permission.INTERNET"/> 
    <application 
     android:allowBackup="true" 
     android:icon="@mipmap/ic_launcher" 
     android:label="@string/app_name" 
     android:supportsRtl="true" 
     android:theme="@style/AppTheme"> 
     <activity android:name=".MainActivity"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
    </application> 

</manifest> 

Mein logcat ist:

09-17 08:55:19.600 4326-4326/? I/art: Late-enabling -Xcheck:jni 
09-17 08:55:19.601 4326-4326/? W/art: Unexpected CPU variant for X86 using defaults: x86 
09-17 08:55:19.640 4326-4326/? W/System: ClassLoader referenced unknown path: /data/app/com.example.selvam.recyclerlist-1/lib/x86 
09-17 08:55:19.647 4326-4326/? I/InstantRun: starting instant run server: is main process 
09-17 08:55:19.651 4326-4326/? I/art: Rejecting re-init on previously-failed class java.lang.Class<com.example.selvam.recyclerlist.MainActivity>: java.lang.NoClassDefFoundError: Failed resolution of: Landroid/support/v7/app/AppCompatActivity; 
09-17 08:55:19.651 4326-4326/? I/art:  at java.lang.Class java.lang.VMClassLoader.findLoadedClass!(java.lang.ClassLoader, java.lang.String) (VMClassLoader.java:-2) 
09-17 08:55:19.651 4326-4326/? I/art:  at java.lang.Class java.lang.ClassLoader.findLoadedClass(java.lang.String) (ClassLoader.java:742) 
09-17 08:55:19.651 4326-4326/? I/art:  at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String, boolean) (ClassLoader.java:362) 
09-17 08:55:19.651 4326-4326/? I/art:  at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String) (ClassLoader.java:312) 
09-17 08:55:19.651 4326-4326/com.example.selvam.recyclerlist I/art:  at android.app.Activity android.app.Instrumentation.newActivity(java.lang.ClassLoader, java.lang.String, android.content.Intent) (Instrumentation.java:1078) 
09-17 08:55:19.651 4326-4326/com.example.selvam.recyclerlist I/art:  at android.app.Activity android.app.ActivityThread.performLaunchActivity(android.app.ActivityThread$ActivityClientRecord, android.content.Intent) (ActivityThread.java:2538) 
09-17 08:55:19.651 4326-4326/com.example.selvam.recyclerlist I/art:  at void android.app.ActivityThread.handleLaunchActivity(android.app.ActivityThread$ActivityClientRecord, android.content.Intent, java.lang.String) (ActivityThread.java:2707) 
09-17 08:55:19.651 4326-4326/com.example.selvam.recyclerlist I/art:  at void android.app.ActivityThread.-wrap12(android.app.ActivityThread, android.app.ActivityThread$ActivityClientRecord, android.content.Intent, java.lang.String) (ActivityThread.java:-1) 
09-17 08:55:19.651 4326-4326/com.example.selvam.recyclerlist I/art:  at void android.app.ActivityThread$H.handleMessage(android.os.Message) (ActivityThread.java:1460) 
09-17 08:55:19.651 4326-4326/com.example.selvam.recyclerlist I/art:  at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:102) 
09-17 08:55:19.651 4326-4326/com.example.selvam.recyclerlist I/art:  at void android.os.Looper.loop() (Looper.java:154) 
09-17 08:55:19.651 4326-4326/com.example.selvam.recyclerlist I/art:  at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:6077) 
09-17 08:55:19.651 4326-4326/com.example.selvam.recyclerlist I/art:  at java.lang.Object java.lang.reflect.Method.invoke!(java.lang.Object, java.lang.Object[]) (Method.java:-2) 
09-17 08:55:19.651 4326-4326/com.example.selvam.recyclerlist I/art:  at void com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run() (ZygoteInit.java:865) 
09-17 08:55:19.651 4326-4326/com.example.selvam.recyclerlist I/art:  at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:755) 
09-17 08:55:19.651 4326-4326/com.example.selvam.recyclerlist I/art: Caused by: java.lang.ClassNotFoundException: Didn't find class "android.support.v7.app.AppCompatActivity" on path: DexPathList[[zip file "/data/app/com.example.selvam.recyclerlist-1/base.apk", 
zip file "/data/app/com.example.selvam.recyclerlist-1/split_lib_slice_6_apk.apk"],nativeLibraryDirectories=[/data/app/com.example.selvam.recyclerlist-1/lib/x86, /system/lib, /vendor/lib]] 
09-17 08:55:19.651 4326-4326/com.example.selvam.recyclerlist I/art:  at java.lang.Class dalvik.system.BaseDexClassLoader.findClass(java.lang.String) (BaseDexClassLoader.java:56) 
09-17 08:55:19.651 4326-4326/com.example.selvam.recyclerlist I/art:  at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String, boolean) (ClassLoader.java:380) 
09-17 08:55:19.651 4326-4326/com.example.selvam.recyclerlist I/art:  at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String) (ClassLoader.java:312) 
09-17 08:55:19.651 4326-4326/com.example.selvam.recyclerlist I/art:  at java.lang.Class java.lang.VMClassLoader.findLoadedClass!(java.lang.ClassLoader, java.lang.String) (VMClassLoader.java:-2) 
09-17 08:55:19.651 4326-4326/com.example.selvam.recyclerlist I/art:  at java.lang.Class java.lang.ClassLoader.findLoadedClass(java.lang.String) (ClassLoader.java:742) 
09-17 08:55:19.651 4326-4326/com.example.selvam.recyclerlist I/art:  at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String, boolean) (ClassLoader.java:362) 
09-17 08:55:19.651 4326-4326/com.example.selvam.recyclerlist I/art:  at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String) (ClassLoader.java:312) 
09-17 08:55:19.651 4326-4326/com.example.selvam.recyclerlist I/art:  at android.app.Activity android.app.Instrumentation.newActivity(java.lang.ClassLoader, java.lang.String, android.content.Intent) (Instrumentation.java:1078) 
09-17 08:55:19.651 4326-4326/com.example.selvam.recyclerlist I/art:  at android.app.Activity android.app.ActivityThread.performLaunchActivity(android.app.ActivityThread$ActivityClientRecord, android.content.Intent) (ActivityThread.java:2538) 
09-17 08:55:19.651 4326-4326/com.example.selvam.recyclerlist I/art:  at void android.app.ActivityThread.handleLaunchActivity(android.app.ActivityThread$ActivityClientRecord, android.content.Intent, java.lang.String) (ActivityThread.java:2707) 
09-17 08:55:19.651 4326-4326/com.example.selvam.recyclerlist I/art:  at void android.app.ActivityThread.-wrap12(android.app.ActivityThread, android.app.ActivityThread$ActivityClientRecord, android.content.Intent, java.lang.String) (ActivityThread.java:-1) 
09-17 08:55:19.651 4326-4326/com.example.selvam.recyclerlist I/art:  at void android.app.ActivityThread$H.handleMessage(android.os.Message) (ActivityThread.java:1460) 
09-17 08:55:19.652 4326-4326/com.example.selvam.recyclerlist I/art:  at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:102) 
09-17 08:55:19.652 4326-4326/com.example.selvam.recyclerlist I/art:  at void android.os.Looper.loop() (Looper.java:154) 
09-17 08:55:19.652 4326-4326/com.example.selvam.recyclerlist I/art:  at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:6077) 
09-17 08:55:19.652 4326-4326/com.example.selvam.recyclerlist I/art:  at java.lang.Object java.lang.reflect.Method.invoke!(java.lang.Object, java.lang.Object[]) (Method.java:-2) 
09-17 08:55:19.652 4326-4326/com.example.selvam.recyclerlist I/art:  at void com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run() (ZygoteInit.java:865) 
09-17 08:55:19.652 4326-4326/com.example.selvam.recyclerlist I/art:  at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:755) 
09-17 08:55:19.652 4326-4326/com.example.selvam.recyclerlist D/AndroidRuntime: Shutting down VM 
09-17 08:55:19.653 4326-4326/com.example.selvam.recyclerlist E/AndroidRuntime: FATAL EXCEPTION: main 
    Process: com.example.selvam.recyclerlist, PID: 4326 
    java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.selvam.recyclerlist/com.example.selvam.recyclerlist.MainActivity}: 
    java.lang.ClassNotFoundException: Didn't find class "com.example.selvam.recyclerlist.MainActivity" on path: DexPathList[[zip file "/data/app/com.example.selvam.recyclerlist-1/base.apk", 
    zip file "/data/app/com.example.selvam.recyclerlist-1/split_lib_slice_6_apk.apk"],nativeLibraryDirectories=[/data/app/com.example.selvam.recyclerlist-1/lib/x86, /system/lib, /vendor/lib]] 
     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2548) 
     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2707) 
     at android.app.ActivityThread.-wrap12(ActivityThread.java) 
     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1460) 
     at android.os.Handler.dispatchMessage(Handler.java:102) 
     at android.os.Looper.loop(Looper.java:154) 
     at android.app.ActivityThread.main(ActivityThread.java:6077) 
     at java.lang.reflect.Method.invoke(Native Method) 
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865) 
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755) 
    Caused by: java.lang.ClassNotFoundException: Didn't find class "com.example.selvam.recyclerlist.MainActivity" on path: DexPathList[[zip file "/data/app/com.example.selvam.recyclerlist-1/base.apk", 
    zip file "/data/app/com.example.selvam.recyclerlist-1/split_lib_slice_6_apk.apk"],nativeLibraryDirectories=[/data/app/com.example.selvam.recyclerlist-1/lib/x86, /system/lib, /vendor/lib]] 
     at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56) 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:380) 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:312) 
     at android.app.Instrumentation.newActivity(Instrumentation.java:1078) 
     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2538) 
     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2707)  
     at android.app.ActivityThread.-wrap12(ActivityThread.java)  
     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1460)  
     at android.os.Handler.dispatchMessage(Handler.java:102)  
     at android.os.Looper.loop(Looper.java:154)  
     at android.app.ActivityThread.main(ActivityThread.java:6077)  
     at java.lang.reflect.Method.invoke(Native Method)  
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865)  
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755)  
    Suppressed: java.lang.NoClassDefFoundError: Failed resolution of: Landroid/support/v7/app/AppCompatActivity; 
     at java.lang.VMClassLoader.findLoadedClass(Native Method) 
     at java.lang.ClassLoader.findLoadedClass(ClassLoader.java:742) 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:362) 
      ... 12 more 
    Caused by: java.lang.ClassNotFoundException: Didn't find class "android.support.v7.app.AppCompatActivity" on path: DexPathList[[zip file "/data/app/com.example.selvam.recyclerlist-1/base.apk", 
    zip file "/data/app/com.example.selvam.recyclerlist-1/split_lib_slice_6_apk.apk"],nativeLibraryDirectories=[/data/app/com.example.selvam.recyclerlist-1/lib/x86, /system/lib, /vendor/lib]] 
     at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56) 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:380) 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:312) 

     ... 15 more 
+0

Bitte die Logcat des Fehlers –

+0

09-17 04: 55: 05.786 1565-1565 /? E/Android Runtime: fatal EXCEPTION: main Prozess: com.example.selvam.recyclerlist, PID: 1565 java.lang.RuntimeException: Kann nicht Aktivität ComponentInfo {com.example.selvam.recyclerlist/com.example.selvam.recyclerlist instanziieren .MainActivity}: java.lang.ClassNotFoundException: Die Klasse "com.example.selvam.recyclerlist.MainActivity" wurde nicht gefunden: @NovoLucas –

+0

Zur besseren Lesbarkeit aktualisieren Sie bitte Ihren ursprünglichen Post mit diesem Logcat und posten es vollständig. –

Antwort

1

Im getView(...) Methode Ihrer ListAdapter. Versuchen Sie dieses (Wechsel von true zu false):

View listViewItem = inflater.inflate(R.layout.list_items, null, false); 

Bitte besuchen here weitere Informationen über LayoutInflater.inflate(...) Methode zu lesen.

+0

Es funktioniert nicht ... andere Vorschläge ... @ LQ Gioan –

+0

Könnten Sie Ihre vollständigen Protokolle veröffentlichen? Haben Sie Ihre MainActivity in Ihrer Manifest.xml-Datei deklariert? –

+0

Siehe diesen Beitrag: https://stackoverflow.com/questions/31849430/runtime-error-while-using-appcompatactivity-instead-of-actionbar. Möge es helfen –