1

我正在使用一个包含自定义视图类的外部库(jar)。我必须使用它测试项目。一个正在工作,一个没有。

非工作的在 Eclipse 中引用自定义视图的行有以下错误:

error: No resource identifier found for attribute 'bar' in package 'com.example.testapp'

作为参考,布局如下所示(简化):

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:foolib="http://schemas.android.com/apk/res-auto"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <com.example.customviewlib.MyBarImageView
        android:id="@+id/imageView1"
        android:layout_width="100dp"
        android:layout_height="100dp"
        foolib:bar="test.bar" />

</LinearLayout>

这两个项目之间的唯一区别似乎是工作项目在“gen”下有一个名为“com.example.customviewlib”的包(带有 R.java)。IE。匹配库包名。

我是否正确地假设这是自定义视图在我的第二个项目中不起作用的原因是缺少库的 gen 包?

如果是这样,我如何强制在我的其他项目中生成包?

我尝试了各种建议,例如清理项目和重新启动 Eclipse。

4

2 回答 2

1

好的。发现了问题。您目前(至少从 ADT 22 开始)不能直接从外部 jar 中使用自定义视图类。您必须创建一个 Android 库项目并引用它。

ActionBarSherlock 必须是一个库项目的原因基本相同。您需要访问 jar 中不存在的资源(在我的情况下为 res/values/attrs.xml 等)。

于 2013-09-27T17:49:58.947 回答
0

Just guessing, but you might be adding the jar through the build path in the non-working project, which is 'deprecated' since the last sdk versions.

If you just copy the jar in the libs folder, it should work fine.

于 2013-09-27T16:06:54.263 回答