Uygulamayı hazırladınız ama müşteri uzakta (mesela siz Ankara o İstanbul'da) ve müşteri bi noktadan sonra uygulamanın kapandığını söylüyor. ADB'ye cihazı bağlamanıza imkan yok çünkü müşteri kilometrelerce uzakta, e kargoyla da yollatamazsınız :) Napıcaksınız? Cevap basit: Müşteriye Log Collector kurduracaksınız :) Ben kendi kıçımı kurtarmak için MX Log Collector kullandım ama siz başka bir tanesini de Google Play'den indirtip kullanabilirsiniz. Yapmanız gereken log collector'ı kurdurup ardından uygulamayı bir kez daha göçertmesini sağlatmanız. Sonra da Log Collector yazılımıyla size mail atması.
Gelen veri şöyle birşey oluyor:
05-14 22:26:19.749 496 496 D SignalClusterView: wifi: VISIBLE sig=2130837743 act=2130837721
05-14 22:26:19.749 496 496 D SignalClusterView: mobile1: VISIBLE sig=2130837711 act=0 typ=2130837668
05-14 22:26:19.749 496 496 D SignalClusterView: mobile2: VISIBLE sig=0 act=0 typ=2130837668
05-14 22:26:19.749 496 496 D SignalClusterView: wifi: VISIBLE sig=2130837743 act=2130837721
05-14 22:26:19.749 496 496 D SignalClusterView: mobile1: VISIBLE sig=2130837711 act=0 typ=2130837668
05-14 22:26:19.749 496 496 D SignalClusterView: mobile2: VISIBLE sig=0 act=0 typ=2130837668
05-14 22:26:19.749 496 496 D StatusBar-NetworkControllerDS: changing data overlay icon id to 2130837721
05-14 22:26:19.769 366 436 D KeyguardViewMediator: setHidden false
05-14 22:26:19.789 366 436 D KeyguardViewMediator: setHidden false
05-14 22:26:19.799 366 436 D KeyguardViewMediator: setHidden false
05-14 22:26:19.819 366 436 D KeyguardViewMediator: setHidden false
05-14 22:26:19.839 366 436 D KeyguardViewMediator: setHidden false
05-14 22:26:19.849 366 436 D KeyguardViewMediator: setHidden false
05-14 22:26:19.859 366 383 I power : *** release_dvfs_lock : lockType : 1
05-14 22:26:19.859 366 383 D PowerManagerService: releaseDVFSLockLocked : all DVFS_MIN_LIMIT are released
05-14 22:26:19.869 366 436 D KeyguardViewMediator: setHidden false
05-14 22:26:19.889 366 436 D KeyguardViewMediator: setHidden false
05-14 22:26:19.899 366 436 D KeyguardViewMediator: setHidden false
05-14 22:26:19.989 366 2158 D KeyguardViewMediator: setHidden false
05-14 22:26:20.019 13997 13997 D AndroidRuntime: Shutting down VM
05-14 22:26:20.019 13997 13997 W dalvikvm: threadid=1: thread exiting with uncaught exception (group=0x40c17a68)
05-14 22:26:20.059 13997 13997 E AndroidRuntime: FATAL EXCEPTION: main
05-14 22:26:20.059 13997 13997 E AndroidRuntime: java.lang.UnsupportedOperationException
05-14 22:26:20.059 13997 13997 E AndroidRuntime: at android.view.GLES20Canvas.clipPath(GLES20Canvas.java:424)
05-14 22:26:20.059 13997 13997 E AndroidRuntime: at com.trendin.trendin.controls.RoundedImageView.onDraw(RoundedImageView.java:43)
05-14 22:26:20.059 13997 13997 E AndroidRuntime: at android.view.View.draw(View.java:11097)
05-14 22:26:20.059 13997 13997 E AndroidRuntime: at android.view.View.getDisplayList(View.java:10536)
05-14 22:26:20.059 13997 13997 E AndroidRuntime: at android.view.ViewGroup.drawChild(ViewGroup.java:2864)
05-14 22:26:20.059 13997 13997 E AndroidRuntime: at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2503)
05-14 22:26:20.059 13997 13997 E AndroidRuntime: at android.view.View.getDisplayList(View.java:10534)
05-14 22:26:20.059 13997 13997 E AndroidRuntime: at android.view.ViewGroup.drawChild(ViewGroup.java:2864)
05-14 22:26:20.059 13997 13997 E AndroidRuntime: at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2503)
05-14 22:26:20.059 13997 13997 E AndroidRuntime: at android.view.View.getDisplayList(View.java:10534)
05-14 22:26:20.059 13997 13997 E AndroidRuntime: at android.view.ViewGroup.drawChild(ViewGroup.java:2864)
05-14 22:26:20.059 13997 13997 E AndroidRuntime: at android.view.ViewGroup.dispatchDraw(ViewGroup.java:2503)
05-14 22:26:20.059 13997 13997 E AndroidRuntime: at android.view.View.getDisplayList(View.java:10534)
Bu verideki problemi kırmızıyla işaretledim. Müşterinin makinasında OpenGL grafik hızlandırıcı clipPath komutunu desteklemiyor. Bundan dolayı kendi yazdığım RoundedImageView bileşenimdeki canvas.clipPath işleminden önce setLayerType(LAYER_TYPE_SOFTWARE, null); yaptım. Bu işlemle çizdirme işlemleri Software olarak yapıldığı için tüm sorunlar bir anda yok oluverdi :) Umarım sizin de işinize yarar.
Hiç yorum yok:
Yorum Gönder