Targer SDK'sı 17 olan uygulamam bir kaç hafta önce sorunsuz çalışıyordu. Bir kaç haftadır eski versiyonlarda nasıl çalıştığını görmek için android 2.1 emulator ile denemeye başladım ve eski versiyonlu emulatör daha hızlı olduğundan onunla çalıştırmaya devam ettim. Bugün tekrar Android 4.2 yüklü bir emulatörde uygulamamı çalıştırmak istediğimde önceden sorunsuz çalışan kodlarda hata aldım. Uygulama halen 2.1 yüklü emülatörde sorunsuz çalışıyor. Custom listview için oluşturduğum adapterın şu kısmında hata veriyor: channelDetailList.setOnItemClickListener(new OnItemClickListener() {

                @Override
                public void onItemClick(AdapterView<?> arg0, View arg1, int position,
                        long arg3) {
                    Object o = channelDetailList.getItemAtPosition(position);
                    Intent i = new Intent(ProgramTypesDetailPage.this,ProgramDetail.class);
                    final Bundle b = new Bundle();
                    b.putString("programID", o.toString());
                    i.putExtras(b);
                    startActivity(i);
                }

            });

09-18 00:49:10.105: E/AndroidRuntime(372): FATAL EXCEPTION: main 09-18 00:49:10.105: E/AndroidRuntime(372): java.lang.NullPointerException 09-18 00:49:10.105: E/AndroidRuntime(372): at com.example.tivilist.ChannelDetailAdapter.getView(ChannelDetailAdapter.java:32) 09-18 00:49:10.105: E/AndroidRuntime(372): at android.widget.AbsListView.obtainView(AbsListView.java:1430) 09-18 00:49:10.105: E/AndroidRuntime(372): at android.widget.ListView.measureHeightOfChildren(ListView.java:1216) 09-18 00:49:10.105: E/AndroidRuntime(372): at android.widget.ListView.onMeasure(ListView.java:1127) 09-18 00:49:10.105: E/AndroidRuntime(372): at android.view.View.measure(View.java:8313) 09-18 00:49:10.105: E/AndroidRuntime(372): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138) 09-18 00:49:10.105: E/AndroidRuntime(372): at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1017) 09-18 00:49:10.105: E/AndroidRuntime(372): at android.widget.LinearLayout.measureHorizontal(LinearLayout.java:701) 09-18 00:49:10.105: E/AndroidRuntime(372): at android.widget.LinearLayout.onMeasure(LinearLayout.java:311) 09-18 00:49:10.105: E/AndroidRuntime(372): at android.view.View.measure(View.java:8313) 09-18 00:49:10.105: E/AndroidRuntime(372): at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:581) 09-18 00:49:10.105: E/AndroidRuntime(372): at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:365) 09-18 00:49:10.105: E/AndroidRuntime(372): at android.view.View.measure(View.java:8313) 09-18 00:49:10.105: E/AndroidRuntime(372): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138) 09-18 00:49:10.105: E/AndroidRuntime(372): at android.widget.FrameLayout.onMeasure(FrameLayout.java:250) 09-18 00:49:10.105: E/AndroidRuntime(372): at android.view.View.measure(View.java:8313) 09-18 00:49:10.105: E/AndroidRuntime(372): at android.widget.LinearLayout.measureVertical(LinearLayout.java:531) 09-18 00:49:10.105: E/AndroidRuntime(372): at android.widget.LinearLayout.onMeasure(LinearLayout.java:309) 09-18 00:49:10.105: E/AndroidRuntime(372): at android.view.View.measure(View.java:8313) 09-18 00:49:10.105: E/AndroidRuntime(372): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138) 09-18 00:49:10.105: E/AndroidRuntime(372): at android.widget.FrameLayout.onMeasure(FrameLayout.java:250) 09-18 00:49:10.105: E/AndroidRuntime(372): at android.view.View.measure(View.java:8313) 09-18 00:49:10.105: E/AndroidRuntime(372): at android.view.ViewRoot.performTraversals(ViewRoot.java:839) 09-18 00:49:10.105: E/AndroidRuntime(372): at android.view.ViewRoot.handleMessage(ViewRoot.java:1859) 09-18 00:49:10.105: E/AndroidRuntime(372): at android.os.Handler.dispatchMessage(Handler.java:99) 09-18 00:49:10.105: E/AndroidRuntime(372): at android.os.Looper.loop(Looper.java:123) 09-18 00:49:10.105: E/AndroidRuntime(372): at android.app.ActivityThread.main(ActivityThread.java:3683) 09-18 00:49:10.105: E/AndroidRuntime(372): at java.lang.reflect.Method.invokeNative(Native Method) 09-18 00:49:10.105: E/AndroidRuntime(372): at java.lang.reflect.Method.invoke(Method.java:507) 09-18 00:49:10.105: E/AndroidRuntime(372): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 09-18 00:49:10.105: E/AndroidRuntime(372): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 09-18 00:49:10.105: E/AndroidRuntime(372): at dalvik.system.NativeStart.main(Native Method)

soruldu: 17 Eyl '13, 16:25

zakkumundibi's gravatar image

zakkumundibi
46346
cevap kabul oranı: 0%

Ben ios uygulamaları geliştiriyorum ama bu tarz olaylar ios'ta da oluyor. Android 2.1'den 4.2 ye geçene kadar aralarda depricate olmuş belli api çağrıları var mutlaka. Developerlar için yapılan change log ları incelemek gerekiyor.

(18 Eyl '13, 07:46) dreampowder dreampowder's gravatar image

sanırım burada yeni emulatorünün ekran boyutuyla alakalı bir sorun var. iki emulator arasında ekran boyutuyla ilgili büyük bir fark var mı?

(18 Eyl '13, 09:18) Emre Emre's gravatar image

ChannelDetailAdapter sinifini görebilir miyiz?

(19 Eyl '13, 01:31) mahmut_can ♦ mahmut_can's gravatar image

import java.util.List;

import android.app.Activity; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.ImageView; import android.widget.TextView;

public class ChannelDetailAdapter extends ArrayAdapter<string> {

private Activity context;  
private ListItemRow itemRow;  
private List<String> list;  
private LayoutInflater layoutInflater;
Database db;
public ChannelDetailAdapter(Activity context, List<String> list) {
    super(context,R.layout.activity_main , list);
    this.context = context;
    this.list = list;
     db = new Database(context);
}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    View rowView = convertView;

String programID = list.get(position).toString();

if (rowView == null) {  
          itemRow = new ListItemRow();  
          layoutInflater = context.getLayoutInflater();  
          rowView = layoutInflater.inflate(R.layout.channel_detail_list, null, true);

itemRow.programName = (TextView) rowView.findViewById(R.id.programName);
          itemRow.programType = (TextView) rowView.findViewById(R.id.programType);
          itemRow.hour = (TextView) rowView.findViewById(R.id.hour);
          itemRow.nextIcon = (ImageView) rowView.findViewById(R.id.nextIcon);

rowView.setTag(itemRow);  
       } else {  
          itemRow = (ListItemRow) rowView.getTag();  
       }

itemRow.nextIcon.setImageResource(R.drawable.navigation_next_item);
       itemRow.hour.setText(db.getProgramDetail(programID).get(0));
       itemRow.programName.setText(db.getProgramDetail(programID).get(1));
       itemRow.programType.setText(db.getProgramDetail(programID).get(2));
    return rowView;

}

private class ListItemRow {
    private TextView hour;
    private TextView programName;
    private TextView programType;
    private ImageView nextIcon;
}

}

Deprecated method olduğunu sanmıyorum , temel nesneler bunlar.

(19 Eyl '13, 10:03) zakkumundibi zakkumundibi's gravatar image
1

com.example.tivilist.ChannelDetailAdapter.getView(ChannelDetailAdapter.java:32)

Bir debug islemi ile 32 sirada neden Nullpointer oldugunu ögrenmen lazim. Nedenini o zaman anlarsin.

(19 Eyl '13, 10:25) mahmut_can ♦ mahmut_can's gravatar image

merhaba

   itemRow.nextIcon.setImageResource(R.drawable.navigation_next_item);
   itemRow.hour.setText(db.getProgramDetail(programID).get(0));
   itemRow.programName.setText(db.getProgramDetail(programID).get(1));
   itemRow.programType.setText(db.getProgramDetail(programID).get(2));

bolumunde setText lere manuel deger girip oyle deneyebilirmisin?

permanent link

cevaplandı: 19 Eyl '13, 14:15

essp's gravatar image

essp
181239
cevap kabul oranı: 30%

hata mesajında dahi değişen bir şey yok

(20 Eyl '13, 15:20) zakkumundibi zakkumundibi's gravatar image

alt text

Eclipse kullanıyorsan bu eklentisi baya yardımcı olacaktır. Object o = channelDetailList.getItemAtPosition(position); bu kısımda muhtemelen hangi activity olduğunu bilmiyordur burda işaret belirteci kullanırsanız daha iyi olur bence. Umarım yardımcı olabilmişimdir.

permanent link

cevaplandı: 22 Eyl '13, 15:36

uzo2008's gravatar image

uzo2008
340369
cevap kabul oranı: 13%

Cevabınız
toggle preview

Bu soruyu takip et

E-Posta üzerinden:

Üyelik girişi yaptıktan sonra abonelik işlemlerini yapabilirsiniz

RSS üzerinden:

Cevaplar

Cevaplar ve Yorumlar

Yazı Formatlama

  • *italic* ya da _italic_
  • **bold** ya da __bold__
  • link:[text](http://url.com/ "başlık")
  • resim?![alt text](/path/img.jpg "başlık")
  • liste: 1. Foo 2. Bar
  • temel HTML etiketleri de kullanılabilir

Bu sorunun etiketleri:

×818
×4
×3

Soruldu: 17 Eyl '13, 16:25

Görüntüleme: 947 kez

Son güncelleme: 22 Eyl '13, 15:36

powered by BitNami OSQA