gpt4 book ai didi

Android ICS 版本在 eclipse 上构建联系人代码

转载 作者:行者123 更新时间:2023-11-29 00:42:56 26 4
gpt4 key购买 nike

我正在尝试在 Eclipse 上构建 ICS 联系人代码。由于联系人使用了一些隐藏类,我创建了一个包含所有必需类的新 jar 文件,并成功构建了 apk。

但现在的问题是我在 jar 中添加的类在最终的 apk 包中缺少链接,我得到了 noClassDefFoundError 异常。

我反编译了 apk,发现 class 存在于 apk 中。为什么 apk 中存在类文件但链接丢失?

我尝试将 jar 文件用作外部库,但由于其大小 (>20mb) 没有成功。

最佳答案

通讯录应用程序使用了多种类型的隐藏文件。其中一些是隐藏的框架项目,如 AggregationSuggestions.PARAMETER_MATCH_NAME,其他属于静态库,如 com.android.phone.CallLogAsync。第一种文件永远不应嵌入到您的 APK 中,但第二种文件应该嵌入。

如果您查看联系人的 Android.mk,您可以找出需要哪些静态库:

LOCAL_STATIC_JAVA_LIBRARIES := \
com.android.phone.common \
com.android.vcard \
android-common \
guava \
android-support-v13 \
android-support-v4 \
android-ex-variablespeed \

要在 Eclipse 中编译 Contact,您应该将框架类添加为“用户库”并将所有静态库添加为“外部 JAR”。

获取所有需要的 jar 的最简单方法是构建 Android 源代码并查看 out/target/common/obj/JAVA_LIBRARIES。每个库都有自己的名为 libname_intermediates 的目录,其中包含 classes-full-debug.jar。这些 jar 正是您构建联系人所需的。框架类位于 framework_intermediates 中,但是您可能需要添加更多的 jar。

您应该在 Eclipse 中为您的项目调整“订购和导出”,以确保您的带有框架类的“用户库”高于“Android 4.0”。

关于Android ICS 版本在 eclipse 上构建联系人代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8291469/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com