我在PlayStore的管理控制檯中出現了經常性崩潰。我看不出它爲什麼會崩潰。 我從來沒有重現這個崩潰,它似乎只來自三星Galaxy設備(不太確定雖然)。從SDK版本4.1 & 4.2 & 4.3TextView樣式ArrayIndexOutOfBoundsException
以下是完整的堆棧跟蹤:
android.view.InflateException: Binary XML file line #31: Error inflating class <unknown>
at android.view.LayoutInflater.createView(LayoutInflater.java:613)
at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:56)
at android.view.LayoutInflater.onCreateView(LayoutInflater.java:660)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:685)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:746)
at android.view.LayoutInflater.inflate(LayoutInflater.java:489)
at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
at com.android.internal.widget.ActionBarContextView.initClose(ActionBarContextView.java:262)
at com.android.internal.widget.ActionBarContextView.onConfigurationChanged(ActionBarContextView.java:136)
at android.view.View.dispatchConfigurationChanged(View.java:7761)
at android.view.ViewGroup.dispatchConfigurationChanged(ViewGroup.java:1056)
at android.view.ViewGroup.dispatchConfigurationChanged(ViewGroup.java:1060)
at android.view.ViewGroup.dispatchConfigurationChanged(ViewGroup.java:1060)
at android.view.ViewGroup.dispatchConfigurationChanged(ViewGroup.java:1060)
at android.view.ViewGroup.dispatchConfigurationChanged(ViewGroup.java:1060)
at android.view.ViewRootImpl.updateConfiguration(ViewRootImpl.java:2800)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1509)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1107)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:4464)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:725)
at android.view.Choreographer.doCallbacks(Choreographer.java:555)
at android.view.Choreographer.doFrame(Choreographer.java:525)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:711)
at android.os.Handler.handleCallback(Handler.java:615)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4895)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:994)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:761)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.reflect.InvocationTargetException
at java.lang.reflect.Constructor.constructNative(Native Method)
at java.lang.reflect.Constructor.newInstance(Constructor.java:417)
at android.view.LayoutInflater.createView(LayoutInflater.java:587)
... 31 more
Caused by: java.lang.ArrayIndexOutOfBoundsException: length=24; index=691
at android.content.res.StringBlock.get(StringBlock.java:64)
at android.content.res.XmlBlock$Parser.getPooledString(XmlBlock.java:458)
at android.content.res.TypedArray.loadStringValueAt(TypedArray.java:720)
at android.content.res.TypedArray.getString(TypedArray.java:124)
at android.widget.TextView.<init>(TextView.java:916)
at android.widget.TextView.<init>(TextView.java:562)
... 34 more
我想也許它是由我給TextView
風格(特別是在fontFamily中)引起的。因此,這裏是從我的價值觀V16> styles.xml(值-V16)風格:
<style name="TextViewHour">
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:layout_marginLeft">5dip</item>
<item name="android:ellipsize">end</item>
<item name="android:maxLines">1</item>
<item name="android:textSize">@dimen/text_hour_size</item>
<item name="android:textColor">@color/item_hour</item>
<item name="android:fontFamily">sans-serif-condensed</item>
<item name="android:textStyle">bold</item>
</style>
從值> styles.xml
<style name="TextViewHour">
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:layout_marginLeft">5dip</item>
<item name="android:ellipsize">end</item>
<item name="android:maxLines">1</item>
<item name="android:textSize">@dimen/text_hour_size</item>
<item name="android:textColor">@color/item_hour</item>
<item name="android:textStyle">bold</item>
</style>
這裏使用一個TextView的例子:
<TextView
style="@style/TextViewHour"
android:id="@+id/name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/item_date_separator"/>
我對於爲什麼我的應用程序在某些設備上崩潰沒有任何線索。 所以如果有人有一個想法,我都耳朵!
編輯:看來,它不僅在星系的設備,我也有這個崩潰適用於Nexus 7
我在我的prod應用程序中也看到了一些崩潰。我下載了roboto字體並將它們加載到應用程序中,但我忘記從我的某些樣式中刪除「fontFamily」。我現在刪除它們,並會很快推出apk,並會讓你知道崩潰是否停止。 – clocksmith