jar的简单Eclipse库项目

时间:2011-12-09 09:00:22

标签: android eclipse

我使用此图书馆项目:https://github.com/JakeWharton/Android-ViewPagerIndicator 为了使它在我的项目中工作,我基于git提供的源代码创建了一个新项目,并在我的Final项目中添加了一个Reference。一切正常。我在我的最终项目中使用它,如:

 <com.viewpagerindicator.TitlePageIndicator
        android:id="@+id/indicator"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" />

我想避免这个Library项目引用,并在我的Final项目中使用一个简单的jar。我已经在我的库项目中生成了jar并添加到Java Build Path中的Final项目中。 当我运行它时,我收到一个错误:

12-09 10:57:34.714: E/AndroidRuntime(10492): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.test/com.test.SettingsActivity}: android.view.InflateException: Binary XML file line #7: Error inflating class com.viewpagerindicator.TitlePageIndicator

有可能实现我想要的目标吗?

4 个答案:

答案 0 :(得分:6)

Android Developer Tools的当前版本(15.0.1)不允许将包含资源(例如布局,自定义属性等)的项目捆绑为简单.jar

根据the library project documentation

  

但是,库项目与标准Android应用程序项目的不同之处在于,您无法将其直接编译为自己的.apk并在Android设备上运行它。同样,您无法将库项目导出到自包含的JAR文件,就像对真正的库一样。相反,您必须通过引用依赖应用程序中的库并构建该应用程序来间接编译库。

ADT目前在Eclipse中附加.jar个库项目,用于链接目的以解决之前不合时宜的纯粹项目引用。但是,它没有捆绑任何资源。

ADT工具网站的download page并未表明对此的支持也将进入ADT 16(从ADT 16预览2开始)。目前的传闻是,这将进入第17版的工具,这仍然是一个很好的方法。我不能引用这个,因为它主要是听说 - 来自Twitter和Android开发者聊天室。

目前,您仍然无法将其用作图书馆项目。

相信我,没有人愿意将这些项目捆绑为.jar比我更多:)

答案 1 :(得分:1)

我已动态创建了标题页指示符而未抛出异常:

@Override
public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    ViewPagerAdapter adapter = new ViewPagerAdapter(this);

    ViewPager pager = new ViewPager(this);
    pager.setAdapter(adapter);

    TitlePageIndicator indicator = new TitlePageIndicator(this);
    indicator.setViewPager(pager);

    LinearLayout body = (LinearLayout) findViewById(R.id.body);
    body.addView(indicator);
    body.addView(pager);

}

答案 2 :(得分:0)

我没有使用jar文件,但我有相同的错误信息,并在Eclipse中以这种方式修复: 右键单击项目,转到属性&gt;在“库”框中,单击“添加”,然后选择“ViewPagerIndicator”。

答案 3 :(得分:0)

我也得到了布局膨胀错误...我知道这个帖子很老了,但发布我的回复,希望任何人都能解决相同的错误就可以解决它...我遵循了所有的步骤博客中包含了......但我犯的错误是我的库文件走的路很长(C:/ Users // Downloads / Jakewhartan ... yada,yada yada / Jakewhartan ..... / libs )这就是问题......我把它转移到了一条像F:/ workdpace / mylibs这样的小路径,它起作用了.......

现在我做了一个注意,因为WINDOWS不支持正确的长路..