アプリケーションでバーコード スキャンに zxing ライブラリを使用しています。だから私はzxingプロジェクトをライブラリとして設定し、そのライブラリを私のプロジェクトに追加しました(プロパティ - >アンドロイド - >ライブラリを追加)
コードをビルドするときにライブラリ プロジェクトを追加すると、プロジェクト内に 2 つの R.java ファイルが作成されていることがわかります。
1つはパスの下にあります:gen\com\google\zxing\client\android
およびその他: gen\myproject
最初のものには、ライブラリのすべてのリソース変数に加えて、プロジェクトのリソース変数が含まれています。2 番目のものには、私のプロジェクトからのリソース変数のみがあります。新しいレイアウトまたはリソース変数が追加されると、両方のファイルで更新されます
だから私の疑問は次のとおりです。
この動作のために、デバッグが非常に困難な非常に奇妙な問題に遭遇しました。
私の zxing ライブラリには、バーコードをスキャンしようとしたときに設定されるレイアウト「キャプチャ」があります。文字「a」/「b」で始まる名前のレイアウトまたはリソース変数を追加するたびに、アプリケーションが奇妙な動作をしていました。そして、レイアウトの名前を変更しただけですべてが完璧に機能しました。後で、R.javaファイルの「キャプチャ」のIDと関係があることがわかりました。a で始まる文字でレイアウトを定義すると、「キャプチャ」の前に R.java リストに挿入されるため、キャプチャの ID が変更されました。(実際のzxingプロジェクトには、ライブラリとして設定した別のR.javaファイルがあります。そのため、R.javaファイルでのキャプチャのIDとzxingライブラリR.javaは同じである必要があります)
ここで実際に何が起こっているのか説明してもらえますか