4

我正在开发一个使用 androidVNC Viewer 作为库项目的 android 应用程序,但我无法从 androidVNC 启动一个活动(未找到活动异常)。

另外,我如何捆绑一个库项目并将其用作一个 apk?

更新

我正在使用以下意图调用:

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

使用以下代码后更新 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 original 和 androidVNC 用作库时(在生成的 java 文件下)......我得到的是textip 在原始 R.java 中有但它不在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 具有不同的命名空间:

当按照 mah 的描述将 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 回答