2011-12-16 39 views
2

我最近推的更新的應用程序,現在我從它甚至打開應用程序崩潰之前,用戶獲得了大量的崩潰報告。我有堆棧跟蹤,但我不承認我的任何課程 - 所以我不知道從哪裏開始尋找。申請強制關閉不斷更新後

這是堆棧跟蹤:

v2.0 Dec 16, 2011 11:00:03 AM   17 reports/week    17 reports 
java.lang.NullPointerException 
at android.graphics.Rect.<init>(Rect.java:72) 
at android.graphics.drawable.ShapeDrawable.mutate(ShapeDrawable.java:359) 
at android.widget.ImageView.applyColorMod(ImageView.java:1275) 
at android.widget.ImageView.onSetAlpha(ImageView.java:290) 
at android.view.ViewGroup.drawChild(ViewGroup.java:1614) 
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) 
at android.view.ViewGroup.drawChild(ViewGroup.java:1644) 
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) 
at android.view.ViewGroup.drawChild(ViewGroup.java:1644) 
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) 
at android.view.View.draw(View.java:6883) 
at android.widget.FrameLayout.draw(FrameLayout.java:357) 
at android.view.ViewGroup.drawChild(ViewGroup.java:1646) 
at android.view.ViewGroup.dispatchDraw(ViewGroup.java:1373) 
at android.view.View.draw(View.java:6883) 
at android.widget.FrameLayout.draw(FrameLayout.java:357) 
at com.android.internal.policy.impl.PhoneWindow$DecorView.draw(PhoneWindow.java:2094) 
at android.view.ViewRoot.draw(ViewRoot.java:1525) 
at android.view.ViewRoot.performTraversals(ViewRoot.java:1261) 
at android.view.ViewRoot.handleMessage(ViewRoot.java:1862) 
at android.os.Handler.dispatchMessage(Handler.java:99) 
at android.os.Looper.loop(Looper.java:130) 
at android.app.ActivityThread.main(ActivityThread.java:3806) 
at java.lang.reflect.Method.invokeNative(Native Method) 
at java.lang.reflect.Method.invoke(Method.java:507) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 
at dalvik.system.NativeStart.main(Native Method) 

任何想法實際的罪魁禍首可能是在這裏或者至少是我應該尋找到?

我們已經改變了的minSdkVersion到一個更高的API,將有可能使用戶以較低的API可能會試圖更新或可能他們甚至沒有下載它在這種情況下?

任何幫助,非常感謝!謝謝!

UPDATE:@LuxuryMode,謝謝您的回覆!不幸的是,這是我在應用程序帳戶的崩潰錯誤下的崩潰報告中看到的,我是否應該在其他地方尋找?它會一遍又一遍地發佈日期和時間,應用程序版本以及報告數量,隨後是堆棧跟蹤。

在頂部,有以下幾點:

Exception class  java.lang.NullPointerException 
Source method  Rect.<init>() 

我們正在嘗試註冊用戶的C2DM應用程序啓動時 - 將應用程序崩潰,如果API級別低於8或將它只是失敗默默? (雖然我沒有看到在這個堆棧跟蹤任何特定的C2DM)

+0

不,這與sdk版本無關。你不會得到一個空指針。獲取異常,意味着應用程序正在運行並引發異常。你確定這就是所有的日誌?應該有更多,告訴你異常被拋出的位置。發佈完整的堆棧跟蹤,包括以「由......引起的」部分 – LuxuryMode 2011-12-16 16:24:54

回答

0

我知道這是爲時已晚,但我轉載這個問題,並找到了解決辦法。

此問題存在API 15及以下時填充的ShapeDrawable對象爲(0,0,0,0),並且該對象需要的突變。例如,這可能發生在調用ImageView的setAlpha(...)上。

的事情是,的ShapeDrawable.setPadding(int, int, int, int)檢查參數爲零,在這種情況下,舊的實現方式設置填充矩形爲null:

public void setPadding(int left, int top, int right, int bottom) 
{ 
    if ((left | top | right | bottom) == 0) { 
     mShapeState.mPadding = null; 
    } 
} 

同時的矩形(矩形R)構造簡單地崩潰上接收null參數。

所以,解決的辦法是在加入drawable.setPadding(new Rect());避免NPE條件。