Json ile veritabanımdan android uygulamamdaki videoların urllerini çektiğim bir uygulamam var. Elle girdiğimde 2-3 tane urlyi sorunsuz şekilde video stream yapabilmiştim ne zaman jsonla urlyi çekip görüntülemeyi denediğime hata alıyorum kod baya uzun o yuzden simdilik buraya atmıcam en azından fikri olan varmı hatanın ne ile ilgili olabiliceği konusunda bunun için yazıyorum isteyen olursa koduda koyabilirim
01-28 10:35:42.668: E/AndroidRuntime(9827): FATAL EXCEPTION: Thread-522 01-28 10:35:42.668: E/AndroidRuntime(9827): java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare() 01-28 10:35:42.668: E/AndroidRuntime(9827): at android.os.Handler.<init>(Handler.java:200) 01-28 10:35:42.668: E/AndroidRuntime(9827): at android.os.Handler.<init>(Handler.java:114) 01-28 10:35:42.668: E/AndroidRuntime(9827): at android.view.SurfaceView$1.<init>(SurfaceView.java:118) 01-28 10:35:42.668: E/AndroidRuntime(9827): at android.view.SurfaceView.<init>(SurfaceView.java:118) 01-28 10:35:42.668: E/AndroidRuntime(9827): at android.widget.VideoView.<init>(VideoView.java:121) 01-28 10:35:42.668: E/AndroidRuntime(9827): at com.mate.smateandroidapp.SMainActivity.addVideoStream(SMainActivity.java:280) 01-28 10:35:42.668: E/AndroidRuntime(9827): at com.mate.smateandroidapp.SMainActivity.prepareArrays(SMainActivity.java:126) 01-28 10:35:42.668: E/AndroidRuntime(9827): at com.mate.smateandroidapp.SMainActivity$1.run(SMainActivity.java:95) 01-28 10:35:42.668: E/AndroidRuntime(9827): at java.lang.Thread.run(Thread.java:841)
aldıgım hata yukarıdaki gibi hatada geçen addvideo stream xmldeki bir layouta videoview ekliyor prepareArrays videoView arrayimin işlemleri initiliaze ardındanda sıradaki videoviewı addvideostreame göndermek Threadede yaptıgım şey jsonla verileri çektikten sonra (çektiğime eminim log olarakta görebiliyorum) 3 saniye bekletip videoları görüntülemek
UI işlemleri main thread da yapılmak zorunda, eğer json u çektiğin thread da view eklemeye çalışıyorsan hata alman normal. En kolayı AsyncTask kullanmak. doInBackground kısmında json u çekersin, onPostExecute kısmında da view i ekler başlatırsın görüntülemeyi
Jsonı o şekilde çekiyorum aslında asyncTask kullanarak buna benzer bi işlem yapmıştım mesela spinner objesinin içine kategorileri yazdırdım orda problem cıkmadı bunda bi enteresanlık var
on PostExecute program başarısız olursa çalışan şey değilmiydi ?Değilse güzel sorunum çözüldü demektir
asnycTaskı onCreate'te çagırıyorum acaba bunda bi hata olabilir mi ? yani sıralama nasıl olmalı asnyctaskı nerde view objelerini nerde çağırmalıyım ?