-2

JSON을 사용하여 DB에서 일부 정보를 받아야하는 응용 프로그램에서 작업 할 때 잘못된 점을 파악할 수 없습니다. 갑자기 그 일이 멈췄습니다.치명적인 예외 : main - AsyncTask Json Parser

로그 캣 :

06-09 07:41:18.654: E/AndroidRuntime(1926): FATAL EXCEPTION: main 
06-09 07:41:18.654: E/AndroidRuntime(1926): android.view.InflateException: Binary XML file line #2: Error inflating class android.widget.RelativeLayout 
06-09 07:41:18.654: E/AndroidRuntime(1926):  at android.view.LayoutInflater.createView(LayoutInflater.java:620) 
06-09 07:41:18.654: E/AndroidRuntime(1926):  at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56) 
06-09 07:41:18.654: E/AndroidRuntime(1926):  at android.view.LayoutInflater.onCreateView(LayoutInflater.java:669) 
06-09 07:41:18.654: E/AndroidRuntime(1926):  at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:694) 
06-09 07:41:18.654: E/AndroidRuntime(1926):  at android.view.LayoutInflater.inflate(LayoutInflater.java:469) 
06-09 07:41:18.654: E/AndroidRuntime(1926):  at android.view.LayoutInflater.inflate(LayoutInflater.java:397) 
06-09 07:41:18.654: E/AndroidRuntime(1926):  at android.widget.SimpleAdapter.createViewFromResource(SimpleAdapter.java:121) 
06-09 07:41:18.654: E/AndroidRuntime(1926):  at android.widget.SimpleAdapter.getView(SimpleAdapter.java:114) 
06-09 07:41:18.654: E/AndroidRuntime(1926):  at android.widget.AbsListView.obtainView(AbsListView.java:2177) 
06-09 07:41:18.654: E/AndroidRuntime(1926):  at android.widget.ListView.measureHeightOfChildren(ListView.java:1247) 
06-09 07:41:18.654: E/AndroidRuntime(1926):  at android.widget.ListView.onMeasure(ListView.java:1159) 
06-09 07:41:18.654: E/AndroidRuntime(1926):  at android.view.View.measure(View.java:15848) 
06-09 07:41:18.654: E/AndroidRuntime(1926):  at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5012) 
06-09 07:41:18.654: E/AndroidRuntime(1926):  at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1404) 
06-09 07:41:18.654: E/AndroidRuntime(1926):  at android.widget.LinearLayout.measureVertical(LinearLayout.java:695) 
06-09 07:41:18.654: E/AndroidRuntime(1926):  at android.widget.LinearLayout.onMeasure(LinearLayout.java:588) 
06-09 07:41:18.654: E/AndroidRuntime(1926):  at android.view.View.measure(View.java:15848) 
06-09 07:41:18.654: E/AndroidRuntime(1926):  at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5012) 
06-09 07:41:18.654: E/AndroidRuntime(1926):  at android.widget.FrameLayout.onMeasure(FrameLayout.java:310) 
06-09 07:41:18.654: E/AndroidRuntime(1926):  at android.view.View.measure(View.java:15848) 
06-09 07:41:18.654: E/AndroidRuntime(1926):  at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5012) 
06-09 07:41:18.654: E/AndroidRuntime(1926):  at com.android.internal.widget.ActionBarOverlayLayout.onMeasure(ActionBarOverlayLayout.java:302) 
06-09 07:41:18.654: E/AndroidRuntime(1926):  at android.view.View.measure(View.java:15848) 
06-09 07:41:18.654: E/AndroidRuntime(1926):  at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5012) 
06-09 07:41:18.654: E/AndroidRuntime(1926):  at android.widget.FrameLayout.onMeasure(FrameLayout.java:310) 
06-09 07:41:18.654: E/AndroidRuntime(1926):  at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2189) 
06-09 07:41:18.654: E/AndroidRuntime(1926):  at android.view.View.measure(View.java:15848) 
06-09 07:41:18.654: E/AndroidRuntime(1926):  at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:1905) 
06-09 07:41:18.654: E/AndroidRuntime(1926):  at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1104) 
06-09 07:41:18.654: E/AndroidRuntime(1926):  at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1284) 
06-09 07:41:18.654: E/AndroidRuntime(1926):  at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1004) 
06-09 07:41:18.654: E/AndroidRuntime(1926):  at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5481) 
06-09 07:41:18.654: E/AndroidRuntime(1926):  at android.view.Choreographer$CallbackRecord.run(Choreographer.java:749) 
06-09 07:41:18.654: E/AndroidRuntime(1926):  at android.view.Choreographer.doCallbacks(Choreographer.java:562) 
06-09 07:41:18.654: E/AndroidRuntime(1926):  at android.view.Choreographer.doFrame(Choreographer.java:532) 
06-09 07:41:18.654: E/AndroidRuntime(1926):  at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:735) 
06-09 07:41:18.654: E/AndroidRuntime(1926):  at android.os.Handler.handleCallback(Handler.java:730) 
06-09 07:41:18.654: E/AndroidRuntime(1926):  at android.os.Handler.dispatchMessage(Handler.java:92) 
06-09 07:41:18.654: E/AndroidRuntime(1926):  at android.os.Looper.loop(Looper.java:137) 
06-09 07:41:18.654: E/AndroidRuntime(1926):  at android.app.ActivityThread.main(ActivityThread.java:5103) 
06-09 07:41:18.654: E/AndroidRuntime(1926):  at java.lang.reflect.Method.invokeNative(Native Method) 
06-09 07:41:18.654: E/AndroidRuntime(1926):  at java.lang.reflect.Method.invoke(Method.java:525) 
06-09 07:41:18.654: E/AndroidRuntime(1926):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737) 
06-09 07:41:18.654: E/AndroidRuntime(1926):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 
06-09 07:41:18.654: E/AndroidRuntime(1926):  at dalvik.system.NativeStart.main(Native Method) 
06-09 07:41:18.654: E/AndroidRuntime(1926): Caused by: java.lang.reflect.InvocationTargetException 
06-09 07:41:18.654: E/AndroidRuntime(1926):  at java.lang.reflect.Constructor.constructNative(Native Method) 
06-09 07:41:18.654: E/AndroidRuntime(1926):  at java.lang.reflect.Constructor.newInstance(Constructor.java:417) 
06-09 07:41:18.654: E/AndroidRuntime(1926):  at android.view.LayoutInflater.createView(LayoutInflater.java:594) 
06-09 07:41:18.654: E/AndroidRuntime(1926):  ... 44 more 
06-09 07:41:18.654: E/AndroidRuntime(1926): Caused by: android.content.res.Resources$NotFoundException: Resource is not a Drawable (color or path): TypedValue{t=0x1/d=0x7f080000 a=-1 r=0x7f080000} 
06-09 07:41:18.654: E/AndroidRuntime(1926):  at android.content.res.Resources.loadDrawable(Resources.java:2063) 
06-09 07:41:18.654: E/AndroidRuntime(1926):  at android.content.res.TypedArray.getDrawable(TypedArray.java:601) 
06-09 07:41:18.654: E/AndroidRuntime(1926):  at android.view.View.<init>(View.java:3364) 
06-09 07:41:18.654: E/AndroidRuntime(1926):  at android.view.View.<init>(View.java:3293) 
06-09 07:41:18.654: E/AndroidRuntime(1926):  at android.view.ViewGroup.<init>(ViewGroup.java:453) 
06-09 07:41:18.654: E/AndroidRuntime(1926):  at android.widget.RelativeLayout.<init>(RelativeLayout.java:242) 
06-09 07:41:18.654: E/AndroidRuntime(1926):  ... 47 more 

캔트, 왜 그냥 작동을 중지해야한다 또한 찾기 위해 어떤 라인을 찾아? 나는 (코드를 보유하고 있음) ListActivity를 첨부했습니다 :

public class ListActivity extends Activity { 

    ListView list; 
    TextView icon; 
    TextView name; 
    TextView developer; 
    TextView size; 

    Button Btngetdata; 

    ArrayList<HashMap<String, String>> mList = new ArrayList<HashMap<String, String>>(); 

    private static String url = "http://appwhittle.com/getdata.php"; 

    private static final String TAG_ITEM = "app_item"; 
    private static final String TAG_ICON = "app_icon"; 
    private static final String TAG_NAME = "app_name"; 
    private static final String TAG_DEVELOPER = "app_developer"; 
    private static final String TAG_SIZE = "app_size"; 

    JSONArray mJsonArray = null; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_list); 
     mList = new ArrayList<HashMap<String, String>>(); 

     new JSONParse().execute(); 
    } 

    private class JSONParse extends AsyncTask<String, String, JSONObject> { 
     private ProgressDialog pDialog; 
     @Override 
     protected void onPreExecute() { 
      super.onPreExecute(); 

      icon = (TextView)findViewById(R.id.icon); 
      name = (TextView)findViewById(R.id.name); 
      size = (TextView)findViewById(R.id.size); 
      developer = (TextView)findViewById(R.id.developer); 

      pDialog = new ProgressDialog(ListActivity.this); 
      pDialog.setMessage("Getting Data ..."); 
      pDialog.setIndeterminate(false); 
      pDialog.setCancelable(true); 
      pDialog.show(); 
     } 

     @Override 
     protected JSONObject doInBackground(String... args) { 
     JSONParser jParser = new JSONParser(); 
     // Getting JSON from URL 
     JSONObject json = jParser.getJSONFromUrl(url); 

     return json; 
     } 
     @Override 
     protected void onPostExecute(JSONObject json) { 
     pDialog.dismiss(); 
     try { 
      mJsonArray = json.getJSONArray(TAG_ITEM); 
      for(int i = 0; i < mJsonArray.length(); i++){ 
      JSONObject c = mJsonArray.getJSONObject(i); 

      String name = c.getString(TAG_NAME); 
      String size = c.getString(TAG_SIZE); 
      String developer = c.getString(TAG_DEVELOPER); 
      String icon = c.getString(TAG_ICON); 

      HashMap<String, String> map = new HashMap<String, String>(); 
      map.put(TAG_ICON, icon); 
      map.put(TAG_NAME, name); 
      map.put(TAG_DEVELOPER, "Developer: " + developer); 
      map.put(TAG_SIZE, size + " MB"); 

      mList.add(map); 
      list=(ListView)findViewById(R.id.list); 

      ListAdapter adapter = new SimpleAdapter(ListActivity.this, mList, 
       R.layout.list_v, 
       new String[] {TAG_NAME, TAG_DEVELOPER, TAG_SIZE }, new int[] { 
        R.id.name, R.id.developer, R.id.size}); 

      list.setAdapter(adapter); 
      list.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
        @Override 
        public void onItemClick(AdapterView<?> parent, View view, 
              int position, long id) { 
         Toast.makeText(ListActivity.this, "You Clicked at "+ mList.get(+position).get(TAG_NAME), Toast.LENGTH_SHORT).show(); 
        } 
       }); 
      } 
     } catch (JSONException e) { 
      e.printStackTrace(); 
     } 
     } 
    }   
} 

JSONParser을 : 어떤 도움이 많이 감사합니다

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" > 

    <ListView 
     android:id="@+id/list" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" > 
    </ListView> 

</LinearLayout> 

public class JSONParser { 
    static InputStream is = null; 
    static JSONObject jObj = null; 
    static String json = ""; 
    // constructor 
    public JSONParser() {} 

    public JSONObject getJSONFromUrl(String url) { 
    // Making HTTP request 
    try { 
     // defaultHttpClient 
     DefaultHttpClient httpClient = new DefaultHttpClient(); 
     HttpPost httpPost = new HttpPost(url); 
     HttpResponse httpResponse = httpClient.execute(httpPost); 
     HttpEntity httpEntity = httpResponse.getEntity(); 
     is = httpEntity.getContent(); 
    } catch (UnsupportedEncodingException e) { 
     e.printStackTrace(); 
    } catch (ClientProtocolException e) { 
     e.printStackTrace(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 

    try { 
     BufferedReader reader = new BufferedReader(new InputStreamReader(
      is, "iso-8859-1"), 8); 
     StringBuilder sb = new StringBuilder(); 
     String line = null; 
     while ((line = reader.readLine()) != null) { 
     sb.append(line + "\n"); 
     } 
     is.close(); 
     json = sb.toString(); 
    } catch (Exception e) { 
     Log.e("Buffer Error", "Error converting result " + e.toString()); 
    } 
    // try parse the string to a JSON object 
    try { 
     jObj = new JSONObject(json); 
    } catch (JSONException e) { 
     Log.e("JSON Parser", "Error parsing data " + e.toString()); 
    } 
    // return JSON String 
    return jObj; 
    } 
} 

activity_list.xml

! 감사합니다

+0

'activity_list.xml '레이아웃을 게시하십시오. –

+0

전체 코드를 게시하는 대신 먼저 lavel에서 코드를 디버깅하십시오. –

+0

귀하의 xml .. – Aniruddha

답변

0

고쳐졌습니다. 내 레이아웃에 android:background="@style/AppBaseTheme"을 추가 한 것처럼 보입니다. 이제 작동 중입니다. 감사합니다.

관련 문제