2013-09-27 25 views
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。

+0

你是如何在非工作项目中导入jar的? – ssantos

回答

0

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

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

+0

我曾尝试过两种。但是我刚刚发现了这个问题(请参阅我的回答) –

1

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

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

+0

那么,到目前为止,是否有任何解决方法? – Chan

+0

不是我所知道的(除了像上面提到的那样制作一个图书馆项目),但我希望被证明是错误的。 –

+0

谢谢,我认为Google需要在这方面开展工作。为一个自定义视图保留一个单独的项目真的很烦人。 – Chan

相关问题