每當我顯示Toast
時,應用程序崩潰。Toast在使用主題中的fontFamily屬性時拋出ArrayIndexOutOfBoundsException與appcompat v26
如果我使用舊版AppCompat庫或從樣式中刪除fontFamily
,該應用可以正常工作。
的onCreate:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toast.makeText(this, "Test", Toast.LENGTH_SHORT).show(); //line 13
}
相關性:
compile 'com.android.support:appcompat-v7:26.1.0'
AppTheme:
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="android:fontFamily">sans-serif-light</item>
</style>
堆棧跟蹤:
導致:java.lang.ArrayIndexOutOfBoundsException:length = 16;索引= 233 at android.content.res.StringBlock.get(StringBlock.java:65) at android.content.res.XmlBlock $ Parser.getPooledString(XmlBlock.java:458) at android.content.res.TypedArray .loadStringValueAt(TypedArray.java:1212) at android.content.res.TypedArray.getString(TypedArray.java:202) at android.support.v7.widget.TintTypedArray.getString(TintTypedArray.java:143) at android .support.v7.widget.AppCompatTextHelper.updateTypefaceAndStyle(AppCompatTextHelper.java:215) at android.support.v7.widget.AppCompatTextHelper.loadFromAttributes(AppCompatTextHelper.java:152) at android.support.v7.widget.AppCompatTextHelp erV17.loadFromAttributes(AppCompatTextHelperV17.java:38) 在android.support.v7.widget.AppCompatTextView。(AppCompatTextView.java:81) 在android.support.v7.widget.AppCompatTextView。(AppCompatTextView.java:71) 在android.support.v7.app.AppCompatViewInflater.createView(AppCompatViewInflater.java:103) at android.support.v7.app.AppCompatDelegateImplV9.createView(AppCompatDelegateImplV9.java:1024) at android.support.v7.app.AppCompatDelegateImplV9。 onCreateView(AppCompatDelegateImplV9.java:1081) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:769) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:727)在android.view.LayoutInflater.rInflate(LayoutInflater.java:518) at android.view.LayoutInflater.rInflateChildren(LayoutInflater.java:821) android.view.LayoutInflater.inflate(LayoutInflater.java:426) at android.view.LayoutInflater.inflate(LayoutInflater.java:377) at android.widget.Toast.makeText(Toast.java:266) at io。 yarsa.blankapp.MainActivity.onCreate(MainActivity.java:13) at android.app.Activity.performCreate(Activity.java:6679) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1 119) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2618) at android.app.ActivityThread。在android.app.ActivityThread上使用handleLaunchActivity(ActivityThread.java:2726) at android.app.ActivityThread.-wrap12(ActivityThread.java) at android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1477) at android.os.Handler.dispatchMessage (Handler.java:102) at android.os.Looper.loop(Looper.java:154) at android.app.ActivityThread.main(ActivityThread.java:6126) at java.lang.reflect.Method.invoke (本機方法) 在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:886) 在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)
是否有任何替代方案,以便我可以使用AppCompat
庫的最新版本的主題中的fontFamily
屬性?
它的工作。大! –
感謝您的解決方案!一個問題:爲什麼它是'android:Widget.Holo.Button'而不是'android:Widget.Button'?如果我的基本主題是使用'Base.Theme.AppCompat.Light.DarkActionBar',它仍然是一樣的嗎? – Aba
@Aba不,Holo風格不會創造出同樣的設計。我編輯了答案。 –