问题标签 [android-library]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
636 浏览

android - Android 平台上的 Android 库和 Java 经典库 (.jar)

据我了解,只要库包含 java 代码,我就可以为 Android创建经典的.jar 库。一旦我需要将资源(xml 文件等)包含到我需要创建所谓的Android 库的库中。

Android 库类似于普通的 Android 应用程序项目,但标志(android.librarydefault.properties文件中)设置为true.

要在我的项目中使用Android 库,首先我需要有它的 java 源代码,然后我需要在 Eclipse 中加载库项目,然后我必须在 Eclipse 菜单中从我的应用程序项目中添加对库项目的引用:Properties>Android>Libraries. 此步骤将添加android.library.reference.x到我的应用程序default.properties文件中。在构建过程中编译库 java 文件并将其合并到最终的应用程序 dex 文件中。

  • 我的描述正确吗?
  • 我真的需要分发资源以允许其他人使用我的Android 库吗?

如果我使用经典的 jar 库(只有在我内部只使用 Java 代码时才能制作),只需在我的应用程序中添加对库 .jar 文件的引用就足够了。这是通过指定项目的构建路径来完成的。稍后在构建过程中,jar 文件与我的应用程序类文件合并,以创建最终的 .dex 文件。

请评论 非常感谢

不锈钢

0 投票
1 回答
160 浏览

android - Android eclipse ADT“查找参考”错误

我的设置:

  • Eclipse 3.6.2,ADT 15.0
  • android库项目B
  • 依赖的android项目A

使用 ADT 12 可以使用

在库 B 的符号上查找项目 A 中该符号的引用。这不再起作用。有解决方法吗?你有同样的问题吗?(同样适用于重命名。)

0 投票
1 回答
4693 浏览

android - 调用驻留在 Android 库项目中的本机函数时出现 Android NDK UnsatisfiedLinkError

我构建了一个 android 应用程序,它使用 android NDK 来创建一个共享的本地库 (.so) 来计算 sha1,当它在一个自包含项目中时它工作得很好。最近虽然我将该项目变成了一个Android共享项目并将jni代码保留在那里..然后我创建了一个引用共享项目的新项目并且该项目似乎正常工作,除了在调用本机函数时我得到一个UnsatisfiedLinkError。本机函数从名为 Hash 的 Java 类中调用。在这个类中,有一些本机函数调用计算文件的 sha1 哈希值。

ndk/jni 代码正在编译,它确实进入了应用程序的 APK,但是我继续收到该错误。我已经在我的手机上卸载了该应用程序,完成了 ndk-build clean 以确保它没有得到旧的引用......等等,没有运气。我还确保我的 jni 函数的名称与

所以这是我的代码的要点:

哈希.java

然后我有(在同一个项目中

jni/Android.mk

jni/sha1_native.c

无论如何,这一切都很好,直到我改变了我的项目的结构,以便我可以重用公共代码(把它放到 android 库项目中)。如果我编译我的应用程序并打开 .apk 文件,我可以看到一个 lib 目录,其中有 armeabi/libnative_sha1.so 文件。因此,它肯定在那里,只是无法正常工作。

更新 - 一些调试信息

好的,所以我添加了一些调试。我将 loadLibrary 从静态块中取出并将其放入我在尝试调用 Hash.getFileHashNative 之前调用的函数中

我不确定是什么原因造成的,但它显然无法找到该功能。我唯一要修改的是 mydomain 的名称,其他一切都是准确的。另外请注意,我的库项目有包com.mydomain.sdk 的名称,我的应用程序项目只是 com.mydomain sha1 的源代码位于 com.mydomain.sdk.util.Hash 下的库项目中我不明白这里发生了什么。有任何想法吗?

0 投票
1 回答
1064 浏览

android - 如何使用 src、res 文件夹创建 android jar 项目

我想在另一个带有源和资源文件夹的项目中创建 android 项目用作 jar 库。

我通过从 Eclipse 中选择 src 和 res 文件夹创建了演示项目并导出到 jar 中。在我的 jar 项目中包含使用 jar 项目的布局 xml 文件表单资源的视图类。我在另一个项目中添加了 demo.jar 并运行然后它给出了错误。

如果我在不使用任何资源的情况下创建动态视图并使用该 jar 项目,它可以正常工作。但我想在该视图中使用 jar 项目的资源。

0 投票
4 回答
1215 浏览

android - 用于图像处理的android库

我一直在到处寻找合适的 android 库。
我需要从照片中提取号码,更具体地说,
我必须为账单拍照并获取其序列号。
我应该使用什么样的图书馆?

0 投票
1 回答
662 浏览

android - Android 库接口和应用程序库边界

我有一个想要转换为 Android 库的 Android 应用程序。该应用程序基于一个活动,其整个 XML 布局仅包含一个覆盖整个屏幕的 web 视图。库 UI(实际上,只是 webview)现在必须集成到其他应用程序的布局中。例如,一个父应用程序具有选项卡结构。我希望将库 webview 显示在其中一个选项卡中,并且这些选项卡始终在屏幕底部可见。通常,我会选择在活动级别设置应用程序库边界,但这在这种情况下不起作用——我们不能从库中弹出一个新活动,因为这会覆盖所有屏幕和选项卡底部。

将其转换为库以使其在父应用程序的选项卡结构中工作的最佳方法是什么?应用程序库边界应该在哪里?我的一些想法是:

  1. 让库用户使用他喜欢的自定义布局(在本例中为选项卡)创建一个活动。确保布局包含 webview。使用 findViewById 获取 webview 对象并将该对象传递到库中,以便库用于显示页面。这里的主要缺点是库的某些部分需要将一些广播接收器连接到父活动(在这种情况下这不是库的真正部分),并且这种耦合似乎相当可疑。

  2. 也许使用 Android 3.0 中引入的片段。然而,这些似乎主要面向平板电脑。这些在这种情况下会起作用吗?

  3. 是否有另一个我不知道的与 Android 2.1+ 兼容的选项?

0 投票
4 回答
1082 浏览

android - 如何实现多个 Android 版本以使用不同的库?

我知道关于免费/付费版本的多个 Android 版本存在很多问题,但这可能会有所不同。

我的应用目前使用 AdMob 进行广告宣传,它已在 Android Market 和 Samsung App Store 上发布。不幸的是,三星商店将来会要求每个人都迁移到自己的广告网络,三星 AdHub。AdMob 和 AdHub 都有自己的库和 SDK。

我正在寻找一种解决方案来构建 2 个不同的版本,一个包括 AdMob,另一个包括 AdHub(以及所有必要的代码)。当需要发布新版本时,我有什么解决方案可以轻松构建 2 个版本而没有太多麻烦?

许多解决方案建议将主项目移动到库项目中,然后构建包括库项目(基础项目)的其他 2 个应用程序。但我不太喜欢这种解决方案(如果可能,我更喜欢将我的应用程序保留在一个项目中),我正在尝试寻找替代方案,然后决定哪一个更适合我的需求。

0 投票
1 回答
669 浏览

android - 从 App 和 Android Library Project 访问公共 jar 文件

我有一个静态 java 库(classes.jar)文件,其中包含 Android 库项目和调用此 Android 库项目的依赖应用程序通用的源代码。

我正在使用 ant env 在 linux 机器上编译代码。

但是当我在 ALP 和 App 的 libs 文件夹下包含这个 jar 文件时,它会出现以下编译错误:

我将如何解决常见jar的这个问题?

0 投票
1 回答
1461 浏览

android - 使用 Ant 和 Proguard 编译 Android 应用程序的问题

我有一个包含不同模块的 Android 应用程序。Main 模块使用了一些库,例如 Google 的 GSON 或 v4.support.package。带有正确 proguard.cfg 的自定义构建脚本也将构建它。现在我必须集成另一个使用部分相同库(GSON support.v4)的“Android-Library”。除了得到很多像

注意:程序类[com.google.gson.Gson]的重复定义

我也得到一些笔记,比如

[proguard] 注意:com.google.gson.UnsafeAllocator:找不到动态引用的类 sun.misc.Unsafe

[proguard] 注:配置参考未知类'sun.misc.Unsafe'

我觉得很奇怪,因为我的 Proguard.cfg 中有一些“保留”,特别是为此:

-keepattributes 签名、注释

-keep class com.google.gson.** {*;}

-保持类 sun.misc.Unsafe { *; }

它在我的项目中运行良好,无需引用其中的模块库。我在最新的 SDK 和工具上,并向模块库添加了一个自定义 proguard.cfg,它在模块库本身上运行良好(如果以独立模式构建)。在我看来,构建不依赖于库项目中的自定义 proguard.cfg。任何关于尝试什么的想法都非常感谢

0 投票
3 回答
1170 浏览

android - 添加到 Android 库的罐子没有在项目中被引用

我创建了一个 Android 库,其中包含了一些外部 jar。这些 jar 可以在 library 项目下的“Referenced Libraries”中看到。当我在其他项目中引用该库时,它无法链接已添加到库中的 jar。它向项目下的引用库显示错误。

它应该链接了添加到库中的 jar,相反,它在我添加此库的项目中显示错误。谁能帮我解决这个问题?