1

いくつかの特定のデバイスでクラッシュするために次のスタックトレースを取得しています。私が述べたリソースが私のR.java、私は自分自身を定義した基本的にない資源で

public static final int design_tint_password_toggle=0x7f0f007c; 

あるOSv5.1

Fatal Exception: android.view.InflateException: Binary XML file line #161: Error inflating class com.adroitandroid.stitchastory.ui.AppTextInputLayoutPlus 
     at android.view.LayoutInflater.createView(LayoutInflater.java:633) 
     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:743) 
     at android.view.LayoutInflater.rInflate(LayoutInflater.java:806) 
     at android.view.LayoutInflater.rInflate(LayoutInflater.java:809) 
     at android.view.LayoutInflater.inflate(LayoutInflater.java:504) 
     at android.view.LayoutInflater.inflate(LayoutInflater.java:414) 
     at android.databinding.DataBindingUtil.inflate(DataBindingUtil.java:116) 
     at android.databinding.DataBindingUtil.inflate(DataBindingUtil.java:88) 
     at com.adroitandroid.stitchastory.HomeActivity$StartStoryFragment.onCreateView(HomeActivity.java:415) 
     at android.support.v4.app.Fragment.performCreateView(Fragment.java:2184) 
     at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1298) 
     at android.support.v4.app.FragmentManagerImpl.moveFragmentsToInvisible(FragmentManager.java:2323) 
     at android.support.v4.app.FragmentManagerImpl.executeOpsTogether(FragmentManager.java:2136) 
     at android.support.v4.app.FragmentManagerImpl.optimizeAndExecuteOps(FragmentManager.java:2092) 
     at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1998) 
     at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:709) 
     at android.os.Handler.handleCallback(Handler.java:815) 
     at android.os.Handler.dispatchMessage(Handler.java:104) 
     at android.os.Looper.loop(Looper.java:194) 
     at android.app.ActivityThread.main(ActivityThread.java:5763) 
     at java.lang.reflect.Method.invoke(Method.java) 
     at java.lang.reflect.Method.invoke(Method.java:372) 
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:960) 
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755) 
Caused by java.lang.reflect.InvocationTargetException 
     at java.lang.reflect.Constructor.newInstance(Constructor.java) 
     at java.lang.reflect.Constructor.newInstance(Constructor.java:288) 
     at android.view.LayoutInflater.createView(LayoutInflater.java:607) 
     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:743) 
     at android.view.LayoutInflater.rInflate(LayoutInflater.java:806) 
     at android.view.LayoutInflater.rInflate(LayoutInflater.java:809) 
     at android.view.LayoutInflater.inflate(LayoutInflater.java:504) 
     at android.view.LayoutInflater.inflate(LayoutInflater.java:414) 
     at android.databinding.DataBindingUtil.inflate(DataBindingUtil.java:116) 
     at android.databinding.DataBindingUtil.inflate(DataBindingUtil.java:88) 
     at com.adroitandroid.stitchastory.HomeActivity$StartStoryFragment.onCreateView(HomeActivity.java:415) 
     at android.support.v4.app.Fragment.performCreateView(Fragment.java:2184) 
     at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1298) 
     at android.support.v4.app.FragmentManagerImpl.moveFragmentsToInvisible(FragmentManager.java:2323) 
     at android.support.v4.app.FragmentManagerImpl.executeOpsTogether(FragmentManager.java:2136) 
     at android.support.v4.app.FragmentManagerImpl.optimizeAndExecuteOps(FragmentManager.java:2092) 
     at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1998) 
     at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:709) 
     at android.os.Handler.handleCallback(Handler.java:815) 
     at android.os.Handler.dispatchMessage(Handler.java:104) 
     at android.os.Looper.loop(Looper.java:194) 
     at android.app.ActivityThread.main(ActivityThread.java:5763) 
     at java.lang.reflect.Method.invoke(Method.java) 
     at java.lang.reflect.Method.invoke(Method.java:372) 
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:960) 
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755) 
Caused by android.content.res.Resources$NotFoundException: Resource ID #0x7f0f007c 
     at android.content.res.Resources.getValue(Resources.java:1463) 
     at android.support.v7.content.res.AppCompatResources.isColorInt(AppCompatResources.java:161) 
     at android.support.v7.content.res.AppCompatResources.inflateColorStateList(AppCompatResources.java:108) 
     at android.support.v7.content.res.AppCompatResources.getColorStateList(AppCompatResources.java:74) 
     at android.support.v7.widget.TintTypedArray.getColorStateList(TintTypedArray.java:136) 
     at android.support.design.widget.TextInputLayout.(TextInputLayout.java:244) 
     at android.support.design.widget.TextInputLayout.(TextInputLayout.java:183) 
     at com.adroitandroid.stitchastory.ui.TextInputLayoutPlus.(TextInputLayoutPlus.java:19) 
     at com.adroitandroid.stitchastory.ui.AppTextInputLayoutPlus.(AppTextInputLayoutPlus.java:16) 
     at java.lang.reflect.Constructor.newInstance(Constructor.java) 
     at java.lang.reflect.Constructor.newInstance(Constructor.java:288) 
     at android.view.LayoutInflater.createView(LayoutInflater.java:607) 
     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:743) 
     at android.view.LayoutInflater.rInflate(LayoutInflater.java:806) 
     at android.view.LayoutInflater.rInflate(LayoutInflater.java:809) 
     at android.view.LayoutInflater.inflate(LayoutInflater.java:504) 
     at android.view.LayoutInflater.inflate(LayoutInflater.java:414) 
     at android.databinding.DataBindingUtil.inflate(DataBindingUtil.java:116) 
     at android.databinding.DataBindingUtil.inflate(DataBindingUtil.java:88) 
     at com.adroitandroid.stitchastory.HomeActivity$StartStoryFragment.onCreateView(HomeActivity.java:415) 
     at android.support.v4.app.Fragment.performCreateView(Fragment.java:2184) 
     at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1298) 
     at android.support.v4.app.FragmentManagerImpl.moveFragmentsToInvisible(FragmentManager.java:2323) 
     at android.support.v4.app.FragmentManagerImpl.executeOpsTogether(FragmentManager.java:2136) 
     at android.support.v4.app.FragmentManagerImpl.optimizeAndExecuteOps(FragmentManager.java:2092) 
     at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1998) 
     at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:709) 
     at android.os.Handler.handleCallback(Handler.java:815) 
     at android.os.Handler.dispatchMessage(Handler.java:104) 
     at android.os.Looper.loop(Looper.java:194) 
     at android.app.ActivityThread.main(ActivityThread.java:5763) 
     at java.lang.reflect.Method.invoke(Method.java) 
     at java.lang.reflect.Method.invoke(Method.java:372) 
     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:960) 
     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755) 

を実行している上でのクラッシュに直面したデバイスの両方。しかし、それは私がここで膨張しようとしているカスタムレイアウトです。このような前回のクラッシュについては、xmlでテキストの色を明示的に言及して修正しました。しかし、これはそれが見つけることができないアンドロイドリソースである点で異なっています。これはアプリの起動時にも正しくありません。

追加するには、これはproguarded apkです。私はproguard設定ファイルで以下のように定数を保持しています。

-keepclassmembers class **.R$* { 
    public static <fields>; 
} 
-keep class **.R$* 

また、私は、特定のビルドタイプの

shrinkResources true 

をコメントアウトしようとしましたが、それはこの問題を解決しませんでした。

私はbuildToolsVersion '25 .0.1'

サポートライブラリのバージョンを使用していますが、それがクラッシュしたときに、膨張するようにしようとしているhere is the layout file 25.1.0です。ライン161は、クラッシュに関連するビューが宣言されている場所である。便宜上ここに貼り付けます。

<com.adroitandroid.stitchastory.ui.AppTextInputLayoutPlus 
    android:id="@+id/contribution_til" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_alignEnd="@id/done_ib" 
    android:layout_alignStart="@id/cancel_ib" 
    android:layout_below="@id/done_ib" 
    android:layout_centerInParent="true" 
    android:paddingTop="16dp" 
    app:counterEnabled="true" 
    app:counterMaxLength="@integer/maxContributionLength" 
    app:errorEnabled="true" 
    app:hintEnabled="false"> 

    <com.adroitandroid.stitchastory.ui.ContentEditTextPlus 
     android:id="@+id/contribution_et" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:gravity="top" 
     android:hint="@string/hint_add_story" 
     android:imeOptions="actionDone" 
     android:inputType="textAutoComplete|textCapSentences|textShortMessage|textMultiLine" /> 
</com.adroitandroid.stitchastory.ui.AppTextInputLayoutPlus> 

AppTextInputLayoutPlusを気にすることなく、次のようにカスタム書体を取ります。

abstract class TextInputLayoutPlus extends TextInputLayout { 
    public TextInputLayoutPlus(Context context) { 
     super(context); 
     init(); 
    } 

    public TextInputLayoutPlus(Context context, AttributeSet attrs) { 
     super(context, attrs); 
     init(); 
    } 

    public TextInputLayoutPlus(Context context, AttributeSet attrs, int defStyleAttr) { 
     super(context, attrs, defStyleAttr); 
     init(); 
    } 

    private void init() { 
     setTypeface(Typeface.createFromAsset(getContext().getAssets(), getTextFont())); 
    } 

    protected abstract String getTextFont(); 
} 
// in its own class file 
public class AppTextInputLayoutPlus extends TextInputLayoutPlus { 
    public AppTextInputLayoutPlus(Context context) { 
     super(context); 
    } 

    public AppTextInputLayoutPlus(Context context, AttributeSet attrs) { 
     super(context, attrs); 
    } 

    public AppTextInputLayoutPlus(Context context, AttributeSet attrs, int defStyleAttr) { 
     super(context, attrs, defStyleAttr); 
    } 

    @Override 
    protected String getTextFont() { 
     return AppTextView.APP_TEXT_FONT; 
    } 
} 

これを解決する方法は誰にも分かりませんが、なぜこれが起こっていますか?

+0

関連するコードを投稿してください –

+0

問題の原因となっているデザインサポートライブラリのバージョンが分かるはずです。 – BladeCoder

+0

@BladeCoder良い点、バージョン25.1.0 –

答えて

0

これは推測です。問題はTextInputLayoutとは関係ありませんでしたが、ContentEditTextPlusともっと関係しています。最近、私はContentEditTextPlusのコードで、ColorTextColor()をオーバーライドしてColorIntの引数をColorIntに上書きするか、その逆の問題を特定しました。それはgetColorStateList()の例外が見つかりませんでしたリソースを説明する必要があります。

関連する問題