我正在尝试创建一个可以作为 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 来促进它在项目中的集成!
谁遇到过这样的问题谁能帮帮我?
谢谢。
最佳答案
I'm trying to create an android component that can be easily added to android projects as a jar library.
如果你想重用代码和资源,使用 jar 文件是不可能的。您需要将您的图书馆转换为 library project .
Then I import this project as a jar library into another project. To create my graphic components in the new project, I must change the path below:
如果您使用的是库项目,您仍然会引用自定义属性,就好像它包含在应用程序中一样(因为 android 会在编译应用程序时将所有资源合并在一起):
xmlns:app="http://schemas.android.com/apk/res/com.component.mypackage"
关于android - 如何制作 Android 自组件并从 jar 库中使用它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5898757/