問題タブ [butterknife]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - ビルドしようとすると重複クラス エラーが発生する
私はgradleでbutterKnife 5.1.0を使用しています。プロジェクト gradle をビルドしようとすると、次の例外がスローされます。
私はバターナイフ jar ファイルを使用しており、これらの 3 行を progaurd に追加しました。
ここで何かが足りないのですか?
android - Gradle、Android Studio、Butterknife でのコンパイル エラー
Eclipse Android プロジェクトを Android Studio にインポートしましたが、次のエラーでコンパイルに失敗しました:
私はaptプラグインを追加しようとしました:
これはバターナイフと関係があると思います。しかし、それを使用してクリーンなプロジェクトを作成すると、すべて問題ありません。
android - どうやってバターナイフを壊したか
挿入しようとする新しいビューのバターナイフを壊しているEclipseセットアップで何かを壊すことができた方法のいくつか。「古い」ビューはまだ問題ないようです。
これは機能します:
これはしません
新しいフィールドを追加すると、生成された Java ファイルの .apt_generated の下にこれが表示されます
対「古い」フィールドのこれ
0 対 2131165280 に注意してください
表示されるエラー メッセージは、map_button を解決できないか、フィールドではありません
実際、gen/my_package/R.java の下を見ると、map_button のエントリはありませんが、sign_out_button のエントリがあります。
プロジェクトのクリーニングと ide の再起動を何度も試みました。誰が何が間違っているのかについて何か考えがありますか?
解決済み
これは本当にばかげた間違いだったことが判明しました。ボタンをxmlファイルに追加していませんでした。バターナイフはコード インジェクションに役立ちますが、レイアウト ファイルにボタンを追加する必要があります。
android - 1 つのフラグメントで 2 つの異なるビューを持つ ButterKnife ライブラリを使用する
現在、Android 用の ButterKnife ライブラリを使用して定型コードを処理しようとしています ( https://github.com/JakeWharton/butterknife )
私はそれをセットアップし、半機能状態にしましたが、修正できない問題に遭遇しました:/
単一の ListView 要素を含む Fragment があり、この ListView にいくつかの要素を含むフッター ビューを添付しています。
これは、ライブラリを使用したフラグメントのコード スニペットです。
上記のコードは機能しません.1つのビューでしか注入できないため、両方(2x注入)で試してみると、2番目の注入が最初の注入を上書きし、null値が残ります。
通常のfindViewById()でできるように、どのビューにどの要素が含まれているかを指定できないようです。
明確にするために、これは私のButterKnife以外のコードです(100%動作します):
上記のように、findViewById のターゲットとして「rootView」または「footerView」を指定できます。
この問題を手伝ってくれる人はいますか? 現時点で私を狂わせているので..
android - Butterknife を注入したカスタム ビューの Listview にアダプターを設定する
Xml レイアウト ファイルにカスタム ビューを持つアクティビティがあります。
このアクティビティの onCreate メソッドでは、Butterknife を使用してビューを挿入します。
私のカスタムビューにはリストビューがあります。onFinishInflate
バターナイフを追加する前に、メソッドでリストビューのアダプターを設定していました。
ただし、Butterknife を追加してから、アダプターを設定した行に NPE が表示されます。その段階では listview が Null であるためです。
私の理解ではButterknife.inject()
、アクティビティのメソッドが呼び出されたときにのみビューがインスタンス化されますが、これはビューが膨張した後に発生します。私が理解できないのは、listView のアダプターをいつ設定する必要があるかということです。
編集:utterknife.inject()
アクティビティで呼び出された後でも、カスタム ビューの子ビューが null のようです。Butterknife.inject
ただし、メソッドへの呼び出しを追加するとonFinishInflate
、次のエラーが表示されますjava.lang.IllegalStateException: Required view with id '2131034112' for field 'listView' was not found
butterknife - バターナイフが注入されない
最近、Android Studio でButter Knifeを使用しようとしていますが、いくつかの奇妙な問題で失敗します。私は日食でバターナイフを試していましたが、うまくいきました。Android Studio で何か間違った設定をしたかどうかはわかりません。
Jake Wharton のWeb サイトの指示に従いましたが、まだ機能していません。最初はコンパイルしてインストールできましたが、その後Butterknife.inject(this)
、ビューはまだ null のままで、null ポインター エラーがスローされました。次に、Android Studio でバターナイフを構成する方法をググって、 stackoverflow でこの問題を追跡したところ、コンパイルに合格できませんでした。
その後、最初のバージョンの構成に戻しましたが、コンパイルも失敗し始めました。メッセージは次のとおりです。
Error:(14, 12): @InjectView-annotated class incorrectly in Android framework package. (android.rocky.butterknife_test.MyActivity)
と
Error:Execution failed for task ':app:compileDebugJava'.
Compilation failed; see the compiler error output for details.
これは私の構成ですapp/build.gradle
:
これはbuild.gradle
ルートでの私の構成です:
これは私のJavaコードです:
ところで、私の Android スタジオのバージョンは 0.8.2 です。貼り付けたスニペットに問題がないと思われる場合は、他のスニペットを貼り付けるように言ってください。どうもありがとう!
android - バターナイフはアクションバーのカスタムビューをどのように注入しますか?
プロジェクトでButterKnifeを使用していますが、素晴らしいです。
ButterKnife.inject(this) によってアクティビティにコンテンツ ビューを挿入できます。また、アクションバーでカスタム ビューを使用しています。
アクションバーに含まれるビューにonclickリスナーをバインドしたい。次のような伝統的な方法:
予想されるバターナイフの方法:
私の場合、ButterKnife の方法を使用するにはどうすればよいですか?
android - 一部のデバイスでの ButterKnife インジェクションの問題
再現することはできませんが、このビュー インジェクション クラッシュが Crashlytics を通じて約 5 ~ 10% のユーザーに影響を与えているのを見てきました。
このアプリは、私が投げたすべてのもので問題なく動作しますが、一部のユーザーは間違いなくこの経験をしていません.
私は何が欠けていますか?一部のデバイスでこれが発生し、同じモデルの他のデバイスでは発生しないのはなぜですか?
影響を受けるデバイスには、Nexus 4 と Nexus 5 が含まれます。両方で試しましたが (Nexus 4 が私のメイン デバイスです)、問題はありませんでした。また、影響を受けるのは、いくつかの Samsung です。
何か案は?
これは完全なスタック トレースで、その後に非常に単純なクラスとレイアウト xmlが続きます。