- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在尝试从源代码构建 v4 支持库,因为我修改了库的一部分。我正在尝试使用 gradle 在 ubuntu 13.10 上执行此操作。我按照此 answer 中的说明进行操作,但现在我被困住了。我将 gradle 1.10 与 ubuntu 一起使用,因为当我尝试在 Windows 上构建它时,它说不支持 Windows,而在带有 gradle 2.4 的 ubuntu 上,它说 gradle 1.10 是受支持的版本。当我尝试构建时
gradle clean jar --stacktrace
我不断收到 IllegalStateException:缺少 llvm-rs-cc,这是我不断收到的堆栈跟踪的一部分
Caused by: java.lang.IllegalStateException: llvm-rs-cc is missing
at com.android.builder.AndroidBuilder.compileAllRenderscriptFiles(AndroidBuilder.java:1281)
at com.android.builder.AndroidBuilder$compileAllRenderscriptFiles.call(Unknown Source)
at com.android.build.gradle.tasks.RenderscriptCompile.taskAction(RenderscriptCompile.groovy:99)
at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:63)
at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.doExecute(AnnotationProcessingTaskFactory.java:219)
at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.execute(AnnotationProcessingTaskFactory.java:212)
at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.execute(AnnotationProcessingTaskFactory.java:201)
at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:533)
at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:516)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:80)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:61)
整个堆栈跟踪是here
我试着在 AndroidBuilder.java 查看源代码这并没有说明任何问题。我什至尝试将上述 llvm-rs-cc 文件从 android-sdk-linux/build-tools
复制到尽可能多的文件夹。我已经将 llvm-rs-cc 二进制文件的路径添加到我的路径中,就像 BuildToolInfo.java 中的评论一样以及 build-tools, tools, and platform-tools
的路径,我相信我是使用 android sdk 管理器下载的。我确认路径是在重新启动后使用 printenv
命令添加的。
我做错了什么?
最佳答案
事实证明,我需要编辑 plaform/frameworks/support
中的 local.properties
文件以添加 sdk 目录,即
sdk.dir=/path/to/android-sdk-linux/
添加这个实际上让整个 llvm-rs-cc 恶作剧消失了但是......还有更多
我正在关注的 stackoverflow 回答说要使用这个命令
platform\frameworks\support\v4\gradle clean jar
我将其解释为导航到 v4
目录,然后使用
gradle clean jar
以下是*我遵循的完整步骤,以防有人也想构建支持库。
You need to checkout additional repositories from https://android.googlesource.com:
- platform/frameworks/support
- platform/prebuilts/gradle-plugin
- platform/prebuilts/maven_repo/android
- platform/prebuilts/sdk
- platform/prebuilts/tools
Please, keep the directory structure as in android repository.
安装包lib32stdc++6
和lib32z1
,我用的是apt-get
sudo apt-get install lib32stdc++6
sudo apt-get install lib32z1
从android开发者网站下载android sdk here
将存档解压缩到任何位置,然后导航到它,然后导航到 tools\
运行 ./android
这应该会启动 sdk 管理器,然后下载这些包(如果尚未下载)
通常这应该足以使用 gradle 构建支持库,但事实证明,api 22 的 git 存储库中的 jar 文件实际上不是最新的,因为它不包含添加的新 AccessibilityInfo 方法在 api 22 中,是的,我反编译了它以确保。所以还有几个步骤。
platform/prebuilts/sdk/current
中的 andoid.jar
文件替换为从 android-sdk-linux 下载的文件/platforms/android-22/
我们差不多完成了,但还有两个问题。如果您现在尝试构建库,Fragment.java
和 FragmentActivity.java
中将出现两个编译错误,请随意修复这些错误,因为我我不确定我对这些的修复有多正确。
要解决这些问题,请在 #935 行的 Fragment.java 中我添加了一个类型转换
result.setFactory(mChildFragmentManager.getLayoutInflaterFactory());
变成了这个
result.setFactory((LayoutInflater.Factory)mChildFragmentManager.getLayoutInflaterFactory());
对于另一个修复,在 #299 行的 FragmentActivity.java 中我换了
final View v = mFragments.onCreateView(name, context, attrs);
有了这个
final View v = mFragments.onCreateView(null, name, context, attrs);
添加 null 的原因是因为在以前的版本中,第一个参数 View parent
不存在,并且在 onCrateView 方法中 parent 被声明并初始化为 null。
生成的 jar 文件可以在 platform/out/host/gradle/frameworks/support/support-v4/build/libs/
中找到*有些步骤可能会遗漏,因为这个过程花了我很长时间,我可能忘记了我做过的一些事情。
关于android - 如何从源代码构建 v4 支持库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30962563/
我的 processmaker 安装遇到了一些问题。我正在尝试使用本指南 [url]http://wiki.processmaker.com/index.php/ProcessMaker_Ubuntu
我正在使用 ShareKit。发送 SMS 消息使用 MFMessageComposeViewController,用户看到标题“文本”。我想将该标题更改为更能反射(reflect)实际可用内容的内容
我需要在我的一个针对 Gingerbread 的 Android 应用程序中使用操作栏和 fragment 的组合。所以我使用了 v7 支持库中的操作栏和 v4 支持库中的 fragment ,并使用
我明白为什么浏览器 vendor 不想帮助我阻止他们的 UI 线程。但是,我不明白为什么会有: Web Workers 中没有 sleep (2) 没有同步 WebSockets API 有一个syn
最近我的组织正在考虑使用 Docker。我们组使用的是cloudera CDH 5.1.2。 1) cloudera 是否与 Docker 容器兼容?2) docker 和cloudera 组合是否存
我正在尝试通过编译在 Mac 上安装 rsync 3.2.3。但是,我想安装所有功能。为此,它需要一些库,此处 ( https://download.samba.org/pub/rsync/INSTA
我一直在使用 PyDev 成功运行 nose 测试,并想试试 nose2。 所以我安装了它 pip install nose2 复制/粘贴来自 http://nose2.info/ 的示例代码进入名为
我想知道 LLVM 中是否有任何函数/方法可以在 LLVM IR 中添加 Open-MP 构造。 llvm-3.0 是否仍然支持 OpenMP 指令? 最佳答案 OpenMP 是一种高级语言扩展。因此
我对 CUDA 编程非常陌生。我正在浏览 SDK 附带的示例。我能够编译代码,但是当我运行它时,出现以下错误: "clock.cu(177) : CUDA Runtime API error 38:
RStudio 是用于 R 开发的出色 IDE。我想知道是否有任何方法可以很好地支持 HiDPI 分辨率? 我目前有 13 英寸显示器和 3200x1800 分辨率,甚至很难阅读 RStudio 选项
我正在寻找一种有助于为 Django 项目提供 RDF 支持的工具。 到目前为止,我发现了两个: django-rdf - 最后一次修改是在 4 年前,所以它看起来像是一个死项目。 djubby -
我刚刚尝试了一些 JS 核心原则,发现引擎评估链接的关系运算符而不会引发错误。相反,他们以我自己无法理解的方式进行评估。 console.log(1 4 > 3 > 2 > 1); //false,
我知道 etexteditor 和 vim/emacs。 是否有任何其他 Windows 编辑器支持类似 textmate 的片段(例如,您编写触发词,按 Tab,它更改为某些内容,再次按 Tab,它
我正在尝试找出验证给定集群的网络策略配置的最佳方法。 According to the documentation Network policies are implemented by the ne
很难说出这里问的是什么。这个问题是含糊的、模糊的、不完整的、过于宽泛的或修辞性的,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开它,visit the help center 。 已关
Z3 会支持 AUFBV 吗? 对于以下脚本: (set-logic AUFBV) (declare-fun x () (_ BitVec 16)) (declare-const t (Array (
使用分部类编写 NUnit 测试的优缺点是什么? 我要开始了: 亲:可以测试私有(private)方法 缺点:TDD 不再可能了 还有什么? 最佳答案 缺点:要么您必须测试与您发布的版本不同的构建,要
它很容易(对于 90% 的 aop 特性)在没有任何语言本身支持的情况下做到这一点,就像大多数动态语言如 python 和 ruby 一样。然而,Dojo在 1.3.2 上直接支持它.最新版本发生
我在我的 android 应用程序中使用亚洲字符,我已经了解到某些字符无法显示,因为系统字体不支持它们。我查询了一个包含亚洲字符的数据库,并且经常检索到无法显示的标志。这些情况对我的应用程序来说通常不
你好,我想实现一个控件,我想在用户键入@字符时启用该控件,直到未填充运行文本中的空格为止,它应该显示用户列表,@符号后键入的文本应该显示基于键盘字符的建议,就像我们在上面看到的那样Twitter 或
我是一名优秀的程序员,十分优秀!