从库项目移动到jar后不能膨胀类

时间:2013-07-06 13:44:11

标签: android android-layout android-xml android-library

我决定从拥有库项目切换到我的libs目录中的JAR。除了DragSortListView library我正在使用之外,这对每个库都很好。当我运行我的应用程序时,InflateException类上的DragSortListView必须被夸大。我不得不改变XML布局,所以我可以使用DragSortListView的属性(我做的唯一更改是xmlns:dslv行)。值得注意的是,我可以在java文件中使用DragSortListView

XML布局(库作为项目):

 <com.mobeta.android.dslv.DragSortListView
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:dslv="http://schemas.android.com/apk/res/com.package.myprojectpackage"
        android:id="@android:id/list"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:drawSelectorOnTop="false"
        dslv:collapsed_height="2dp"
        dslv:drag_enabled="true"
        dslv:drag_scroll_start="1"
        dslv:float_alpha="1.0"
        dslv:float_background_color="@color/Transparent"
        dslv:max_drag_scroll_speed="0.5"
        dslv:slide_shuffle_speed="0.3"
        dslv:drag_handle_id="@+id/sabnzbd_queue_drag_handle"
        dslv:track_drag_sort="false"
        dslv:use_default_controller="true" />

XML布局(库为JAR):

<com.mobeta.android.dslv.DragSortListView
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:dslv="http://schemas.android.com/apk/lib/com.mobeta.android.dslv"
    android:id="@android:id/list"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:drawSelectorOnTop="false"
    dslv:collapsed_height="2dp"
    dslv:drag_enabled="true"
    dslv:drag_scroll_start="1"
    dslv:float_alpha="1.0"
    dslv:float_background_color="@color/Transparent"
    dslv:max_drag_scroll_speed="0.5"
    dslv:slide_shuffle_speed="0.3"
    dslv:drag_handle_id="@+id/sabnzbd_queue_drag_handle"
    dslv:track_drag_sort="false"
    dslv:use_default_controller="true" />   

InflateException(Library as JAR):

07-06 15:25:33.376: E/AndroidRuntime(22907): FATAL EXCEPTION: main
07-06 15:25:33.376: E/AndroidRuntime(22907): android.view.InflateException: Binary XML file line #32: Error inflating class com.mobeta.android.dslv.DragSortListView
07-06 15:25:33.376: E/AndroidRuntime(22907):    at android.view.LayoutInflater.createView(LayoutInflater.java:613)
07-06 15:25:33.376: E/AndroidRuntime(22907):    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:687)
07-06 15:25:33.376: E/AndroidRuntime(22907):    at android.view.LayoutInflater.rInflate(LayoutInflater.java:746)
07-06 15:25:33.376: E/AndroidRuntime(22907):    at android.view.LayoutInflater.rInflate(LayoutInflater.java:749)
07-06 15:25:33.376: E/AndroidRuntime(22907):    at android.view.LayoutInflater.inflate(LayoutInflater.java:489)
07-06 15:25:33.376: E/AndroidRuntime(22907):    at android.view.LayoutInflater.inflate(LayoutInflater.java:396)

如果有人能够解释为什么在XML文件中找不到该类,并且可能会提供解决方法来解决这个问题,那将非常感谢!

1 个答案:

答案 0 :(得分:3)

任何拥有资源并使用资源引用系统的Android项目都无法打包为jar。它必须是一个Android库,才能正确生成R.java文件和要解析的资源。即@color/Transparent

参考:

http://developer.android.com/tools/projects/index.html#considerations