如何制作 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 组件

如何将 JAR 依赖项包含到 AAR 库中

如何在 React ui-fabric 库中自定义 GroupedList 组件中的标题

Android 库中的 Proguard

Android中的自定义参数

如何使用 Android Java Camera View 模块创建自定义 React Native 组件?