在 Android 项目中导入 .jar 会导致 Binary XML 文件行错误

Posted

技术标签:

【中文标题】在 Android 项目中导入 .jar 会导致 Binary XML 文件行错误【英文标题】:Importing .jar in Android project causes Binary XML file line Error 【发布时间】:2012-09-09 12:24:16 【问题描述】:

我正在尝试在我的项目中实现其他人库。我已经从 GitHub 下载了源代码,从库项目中创建了 .jar,将其导入到示例项目中,并且 它工作正常,全部调用。

现在,我以相同的方式将相同的 .jar 添加到我的项目中,当我调用 XML 中的对象我得到这个:

/androidRuntime(983): android.view.InflateException: Binary XML file line #12: Error inflating class net.simonvt.widget.NumberPicker

当我尝试在我的项目中从 .jar 文件打开 .xml 时,我无法做到这一点(也许没关系,到目前为止我从未尝试过,所以)。

我在这里阅读了一些解决方案并尝试将我的 .xml 视图更改为:

<view class="net.simonvt.widget.NumberPicker$number_picker"
    android:id="@+id/npAge"
    android:layout_
    android:layout_ />

但同样,应用程序崩溃。

问题>

    如果构建得当,.jar 文件是否足够,或者是否应该以某种方式导入“源”? 将某人的代码导出/导入到您的项目中的正确方法是什么。我认为创建 .jar 并添加到 libs 文件夹是正确的方法,但现在我不明白这个丢失的 .xml

正如您所见,simonvt 号码选择器是众所周知的,所以我认为我不是第一个尝试导入它的人。

Tnx 寻求帮助。

编辑 1: 好的,似乎无论您将 .jar 或链接项目链接为“库”项目,您都必须将某些布局 .xml 从库复制到主项目,然后它有点工作,但冻结了应用程序。它显示,然后您可以看到对话框冻结和新的系统对话框弹出消息等待/停止应用程序。

【问题讨论】:

【参考方案1】:

我认为您所指的 github 项目需要作为 Android 库项目导入。

基本上,您不能只从库源构建 .jar 文件,因为 Android 构建工具无法看到资源(res/ 目录中的文件)。

您需要做的是将该库作为Android 库项目 进行引用。这很容易做到,只需按照此处的说明进行操作:http://developer.android.com/tools/projects/projects-eclipse.html#SettingUpLibraryProject

有关图书馆项目的更多信息,请查看:http://developer.android.com/tools/projects/index.html

【讨论】:

Tnx 链接。我这样做了,所以我现在使用链接库项目,但问题仍然存在相同的错误。我不明白。 这个链接很有帮助,你的解释也很有帮助。谢谢你。事实上,将库引用为 Android 库项目是朝着正确方向迈出的一步。【参考方案2】:

如果您有库代码的源代码,请将其放在单独的 Android 项目中,并将其指定为库项目(创建项目时有一个复选框可以这样做)。然后通过转到项目的属性 -> Android,选择添加库(靠近底部)并选择您创建的库项目,将库项目导入您的项目。

【讨论】:

【参考方案3】:

在这里研究和阅读之后,我必须将所有 XML 文件复制到我的项目中。因此,当我复制 XML 时,它解决了这个问题。我必须承认我不明白这一点,因为在示例项目中显然不是这样,但我不再有问题了..

【讨论】:

以上是关于在 Android 项目中导入 .jar 会导致 Binary XML 文件行错误的主要内容,如果未能解决你的问题,请参考以下文章

在 React Native 的非根文件中导入 firebase 会导致 Android 模拟器出错

怎样在androidstudio中导入gson包

androidstudio中导入的jar包没有主清单属性怎么办

androidstudio中导入的jar包没有主清单属性怎么办

android 导入第三方jar包,在程序中导入包中的类无效;

AndroidStudio 项目中导入jar包及so包