困っているのが下記コードとなります。
事象としましては、ButterKinfe.inject で読み込んでいるレイアウトに変更を加えたところ、
変更前に読み込まれていた ID が見つかりませんというようなエラーが消えなくなってしまいました。
Fragment (View呼び出し部分)
Java
1@Override 2public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 3 View view = inflater.inflate(R.layout.grouplayout, null); 4 ButterKnife.inject(this, view); 5 6 DatabaseAccess db = new DatabaseAccess(getActivity()); 7 List<String> groupNames = db.getGroupNames(); 8 AutoCompleteTextView view = (AutoCompleteTextView)view.findViewById(R.id.groupNames); // 新しくこいつを読み込みたい 9}
変更前のレイアウト(grouplayout.xml)
XML
1<!-- 省略 --> 2 3<Spinner 4 android:id="@+id/group" 5 android:layout_width="match_parent" 6 android:layout_height="wrap_content"/> 7 8<!-- 省略 -->
変更後のレイアウト(grouplayout.xml)
Spinner から AutoCompleteTextViewに変えて、 IDを group から groupNames に変更
XML
1<!-- 省略 --> 2 3<com.cli.lib.AutoCompleteTextView 4 android:id="@+id/groupNames" 5 android:layout_width="match_parent" 6 android:layout_height="wrap_content" 7 android:inputType="text"/> 8 9<!-- 省略 -->
自動生成されるViewInjector.javaとやら
Java
1@Override public void inject(final Finder finder, final T target, Object source) { 2 // 一部省略 3 View view; 4 //↓この2行が消しても消してもビルドするたびに生成される (groupNamesは生成されない) 5 view = finder.findRequiredView(source, 2131492990, "field 'group'"); 6 target.group = finder.castView(view, 2131492990, "field 'group'"); 7}
エラー文
java.lang.RuntimeException: Unable to start activity ComponentInfo{ ~ Activity}:java.lang.IllegalStateException: Required view 'group' with ID 2131492990 for field 'group' was not found. If this view is optional add '@Optional' annotation.
エラー解決のために試したこと
・ビルド > クリーンプロジェクト
・AutoCompleteTextView の IDを groupに変えて実行 → CastException
→ AutoCompleteTextView は Spinner にCastできません 云々...
・ViewInjector や R.java から groupに関するIDなどを消してクリーン
物凄いわかりにくい質問で大変申し訳ないのですが、
もしお時間ある方で、解決方法に心当たりのある方いらっしゃいましたらご教授頂けると幸いです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。