4

ライブラリ プロジェクトとして androidVNC Viewer を使用する android アプリケーションを開発していますが、androidVNC からアクティビティを起動できません (アクティビティが見つかりません例外)。

また、ライブラリ プロジェクトをバンドルして 1 つの apk として使用するにはどうすればよいですか?

アップデート

私は次の意図を使用して呼び出しています:

Intent call= new Intent("android.androidVNC.androidVNC.LAUNCH");
startActivity(call);

UPDATE 2 次のコードを使用した後、アクティビティを開始できると思いますが、この( java.lang.NoSuchFieldError: android.androidVNC.R$id.textIP) エラーが発生します...

Intent vnc_call = new Intent(getApplicationContext(), androidVNC.class);
            vnc_call.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
            startActivity(login);

R.java、androidVNCオリジナルとandroidVNCの両方をライブラリとして使用した場合(生成されたJavaファイルの下)をチェックした後...私が得たのは、元のR.javaにはtextipがありますが、(生成された)のR.javaにはありませんjava ファイル) を呼び出し側プロジェクトに配置します。

logcat の O/P (最初の数行)


04-05 01:34:18.135: W/dalvikvm(479): Landroid/androidVNC/AbstractConnectionBean のスーパークラスを解決できません。(256)
04-05 01:34:18.135: W/dalvikvm(479): クラス 'Landroid/androidVNC/AbstractConnectionBean;' のリンク 失敗した
04-05 01:34:18.135: W/dalvikvm(479): Landroid/androidVNC/ConnectionBean のスーパークラスを解決できません。(8)
04-05 01:34:18.135: W/dalvikvm(479): クラス 'Landroid/androidVNC/ConnectionBean;' のリンク 失敗した
04-05 01:34:18.145: W/dalvikvm(479): VFY: 署名で参照されているクラスが見つかりません (Landroid/androidVNC/ConnectionBean;)
04-05 01:34:18.155: W/dalvikvm(479): Landroid/androidVNC/AbstractConnectionBean のスーパークラスを解決できません。(256)
04-05 01:34:18.155: W/dalvikvm(479): クラス 'Landroid/androidVNC/AbstractConnectionBean;' のリンク 失敗した
04-05 01:34:18.155: W/dalvikvm(479): Landroid/androidVNC/ConnectionBean のスーパークラスを解決できません。(8)
04-05 01:34:18.155: W/dalvikvm(479): クラス 'Landroid/androidVNC/ConnectionBean;' のリンク 失敗した
04-05 01:34:18.187: W/dalvikvm(479): Landroid/androidVNC/AbstractConnectionBean のスーパークラスを解決できません。(256)
04-05 01:34:18.187: W/dalvikvm(479): クラス 'Landroid/androidVNC/AbstractConnectionBean;' のリンク 失敗した
04-05 01:34:18.187: W/dalvikvm(479): Landroid/androidVNC/ConnectionBean のスーパークラスを解決できません。(8)`

04-05 01:34:18.135: W/dalvikvm(479): Landroid/androidVNC/AbstractConnectionBean のスーパークラスを解決できません。(256)
04-05 01:34:18.135: W/dalvikvm(479): クラス 'Landroid/androidVNC/AbstractConnectionBean;' のリンク 失敗した
04-05 01:34:18.135: W/dalvikvm(479): Landroid/androidVNC/ConnectionBean のスーパークラスを解決できません。(8)
04-05 01:34:18.135: W/dalvikvm(479): クラス 'Landroid/androidVNC/ConnectionBean;' のリンク 失敗した
04-05 01:34:18.145: W/dalvikvm(479): VFY: 署名で参照されているクラスが見つかりません (Landroid/androidVNC/ConnectionBean;)
04-05 01:34:18.155: W/dalvikvm(479): Landroid/androidVNC/AbstractConnectionBean のスーパークラスを解決できません。(256)
04-05 01:34:18.155: W/dalvikvm(479): クラス 'Landroid/androidVNC/AbstractConnectionBean;' のリンク 失敗した
04-05 01:34:18.155: W/dalvikvm(479): Landroid/androidVNC/ConnectionBean のスーパークラスを解決できません。(8)
04-05 01:34:18.155: W/dalvikvm(479): クラス 'Landroid/androidVNC/ConnectionBean;' のリンク 失敗した
04-05 01:34:18.187: W/dalvikvm(479): Landroid/androidVNC/AbstractConnectionBean のスーパークラスを解決できません。(256)
04-05 01:34:18.187: W/dalvikvm(479): クラス 'Landroid/androidVNC/AbstractConnectionBean;' のリンク 失敗した
04-05 01:34:18.187: W/dalvikvm(479): Landroid/androidVNC/ConnectionBean のスーパークラスを解決できません。(8)

どんな手掛かり?

4

2 に答える 2

8

ライブラリプロジェクトには独自のAndroidManifest.xmlがありますが、そのコンテンツはビルドに追加されません。マニフェストで通常宣言されているライブラリに含まれるものはすべて、それらを使用する予定がある場合は、実際のアプリケーションマニフェストにコピーする必要があります。これには、アクティビティ、ブロードキャストレシーバー、サービス、権限などが含まれます。

于 2012-04-04T11:30:32.247 に答える
2

lib と app の名前空間が異なると仮定します。

説明したように lib-manifest-info を app-manifest とマージするとき、アクティビティに異なる名前空間を含めましたか?

    <application ... >
        <activity
            android:name=".MyActivity" >...

    <application ... >
        <activity
            android:name="my.namespace.MyActivity" >...

最新の eclipse-android ツール 1.7 を使用することも役立つ場合があります。詳細については、how-to-consume-reusable-gui-element-widget-with-resources-in-androidを参照してください

于 2012-04-04T15:26:58.927 に答える