3

OAuthログイン機能を含む独自のライブラリを作成+インポートしました。ライブラリのres/layoutフォルダに定義されている独自のレイアウト リソースauthorize.xmlで「setContentView(R.layout.authorize)」を呼び出す必要があります。(テスト アクティビティを使用して) 通常のプロジェクトとしてライブラリを実行すると、すべて正常に動作します。ただし、ライブラリを別のプロジェクトで使用すると、authorize.xmlレイアウトが見つからないことを示す次のエラーが表示されます。

05-17 16:56:10.436: W/dalvikvm(212): VFY: unable to resolve static field 29 (twitter_authorize_webview) in Lcom/skworks/twitter/R$layout;
05-17 16:56:10.436: W/dalvikvm(212): VFY:  rejecting opcode 0x60 at 0x0003
05-17 16:56:10.436: W/dalvikvm(212): VFY:  rejected Lcom/skworks/twitter/AuthorizeActivity;.onCreate (Landroid/os/Bundle;)V
05-17 16:56:10.436: W/dalvikvm(212): Verifier rejected class Lcom/skworks/twitter/AuthorizeActivity;
05-17 16:56:10.436: W/dalvikvm(212): Class init failed in newInstance call (Lcom/skworks/twitter/AuthorizeActivity;)

これが私の主な活動のコードです

Intent i = new Intent(this, AuthorizeActivity.class);
i.putExtra("URL", mRequestToken.getAuthenticationURL());
this.startActivityForResult(i, TWITTER_AUTH);

そして明らかに、これはライブラリにある AuthorizeActivity クラスのonCreateにあります。

setContentView(R.layout.authorize);

ライブラリで定義されたリソースを公開するために、何かが正しくセットアップされていないと確信しています。何か案は?

4

2 に答える 2

2

ライブラリのビルド設定を確認する必要がある場合があります。レイアウト ファイルが jar/apk にパッケージ化されていない可能性があります。また、ライブラリを使用するプロジェクトがファイルを成果物 apk にバンドルしていない可能性もあります。それが私が探し始めるところです。

于 2012-05-17T17:20:54.420 に答える
0

android.R をインポートしていないことを確認します。それ以外の場合、mtmurdock が言ったように、プロジェクトがビルドされていることを確認し、クリーンアップしてみてください。xml エラーが発生している可能性があります。

于 2012-05-17T17:32:29.077 に答える