如何制作 Android 自组件并从 jar 库中使用它?
Posted
技术标签:
【中文标题】如何制作 Android 自组件并从 jar 库中使用它?【英文标题】:How make Android self components and use it from a jar library? 【发布时间】:2011-08-19 10:01:09 【问题描述】:我正在尝试创建一个可以作为 jar 库轻松添加到 android 项目中的 android 组件。
为此,我必须在“res/values/attr.xml”中创建新的 xml 属性,然后使用路径将其添加到图形 xml 元素中:
xmlns:app="http://schemas.android.com/apk/res/com.component.mypackage"
然后我将这个项目作为 jar 库导入到另一个项目中。 要在新项目中创建我的图形组件,我必须更改以下路径:
xmlns:app="http://schemas.android.com/apk/res/com.mylibrary"
但是路径不对:没有找到自定义属性。
我设法将 R 文件集成到库 jar 中,我可以从我的 xml 中访问它来声明一个自定义组件,如下所示:
<PreferenceScreen
xmlns:android = "http://schemas.android.com/apk/res/android"
xmlns:app = "http://schemas.android.com/apk/res/com.myLibraryPackage">
<com.myLibraryPackage.mySelfComponent
android:title="Name"
android:key="name"
app:hintText="Input your name"
android:dialogTitle="Your name "
app:validator="com.myLibraryPackage.myValidatorClass" />
奇怪的是,如果我将文件 attr.xml 放在项目的资源中,它可以工作,这意味着它找到了 com.myLibraryPackage.mySelfComponent。在那种情况下,为什么它也找不到 com.myLibraryPackage ?
(我也试过替换
xmlns:app="http://schemas.android.com/apk/res/com.myLibraryPackage"
通过
xmlns:app="http://schemas.android.com/apk/res/com.myApplicationPackage"
但还是不行)
我宁愿使用 jar 来促进它在项目中的集成!
有没有人遇到过这样的问题谁能帮帮我?
谢谢。
【问题讨论】:
+1 我没办法,但请为双语问题投赞成票! 是的,但如果每个人都开始这样做,那将是一团糟。 Moi aussi / 我也是,Je Upvote / 我支持双语问题。 【参考方案1】:我正在尝试创建一个 android 可以轻松添加到的组件 android 项目作为 jar 库。
如果您想重用代码和资源,则无法使用 jar 文件来实现。您需要将您的库转换为 library project。
然后我将此项目作为 jar 导入 库到另一个项目。到 在 新项目,我必须改变路径 下面:
如果您使用的是库项目,您仍然会引用自定义属性,就好像它包含在应用程序中一样(因为 android 会在编译应用程序时将所有资源合并在一起):
xmlns:app="http://schemas.android.com/apk/res/com.component.mypackage"
【讨论】:
以上是关于如何制作 Android 自组件并从 jar 库中使用它?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 android 中制作带有圆角的 EditText 组件