外部库中的自定义视图类无法正常工作

时间:2013-09-27 15:59:57

标签: android android-layout android-custom-view

我正在使用包含自定义视图类的外部库(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。

2 个答案:

答案 0 :(得分:1)

好。发现了这个问题。您目前无法(至少从ADT 22开始)直接从外部jar使用自定义视图类。你必须制作一个Android库项目并引用它。

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

答案 1 :(得分:0)

只是猜测,但您可能会通过非工作项目中的构建路径添加jar,自上次sdk版本以来,该程序已被弃用。

如果您只是复制libs文件夹中的jar,它应该可以正常工作。