我一直在为android开发一个应用程序,它利用了android可比性库(android-support-v4)。在SDK 20之前,我能够在清单中使用以下< code>uses-sdk条目编译我的应用程序。
<uses-sdk android:minSdkVersion="7" />
我的所有为结果启动活动的片段都正确地收到了结果。
有一天(在我更新到SDK 20之前),我在修复lint问题,并根据lint标志的请求将< code > Android:targetSdkVersion 添加到清单中,我很快意识到我的片段都没有接收到它们的onActivityResilt()调用。
现在,自从我更新到SDK 20.0.1以来,我被迫在我的清单中使用botuse-sdk
条目中的android:targetSdkVersion
;否则,永远不会生成 R.java。
这是我当前的< code>uses-sdk清单条目
<uses-sdk
android:minSdkVersion="7"
android:targetSdkVersion="16" />
目前由于这个奇怪的错误,我的应用程序仍然是坏的。我已经尝试将我的兼容库升级到最新版本r9。
我还仔细检查了片段中的所有start ActivityForResult()
调用。他们都通过片段的方法使用正确的调用。
即
this.startActivityForResult(intent, requestCode);
不是的
this.getActivity().startActivityForResult(intent, requestCode);
我当前的开发环境:
Android SDK 20.0.1
Android SDK Platform Tools 13
ADT 20.0.2
任何帮助都将不胜感激,因为这个错误目前是阻止我最终beta测试的砖墙。
编辑
这是我的蚂蚁调试
输出
$ ant调试构建文件:/home/Ricky/Development/workspace/location _ ringer/location ringer/build . XML
-设置-模式-检查:
-设置-调试-文件:
AndroidSDK工具修订版20.0.1[check env]安装在 /app/android-sdk-linux_86
-set:[echo]项目名称:Listactive[gettype]项目类型:应用程序
-set-debug-模式:
-调试-混淆-检查:
-构建设置:[echo]正在解析ListActivity的构建目标…[gettarget]项目目标:Google API[gettarget]供应商:Google Inc[gettarget]平台版本:4.1[getTargets]API级别:
16[echo]------[echo]在需要时创建输出目录…[echo]------[回声]正在解析List Activity的依赖项…[dependency]库依赖项:[依赖项][依赖项]------------------[依赖性]有序库:[依赖性][依赖性]-------[dependency]API
节点:
-设置-模式-检查:
-设置-调试-文件:
AndroidSDK工具修订版20.0.1[check env]安装在 /app/android-sdk-linux_86
-设置:[echo]项目名称:LocationLib[gettype]项目类型:Android库
-set-debug-模式:
-调试-混淆-检查:
项目目标:Google API[getTarget]供应商:Google Inc.[getTarget]平台版本:4.1[getTarget]API级别:
16[回显] ---------- [回显]如果需要,创建输出目录...[回显] ---------- [回显]解决LocationLib的依赖项...[依赖项]库依赖项:[依赖项]没有库[依赖项][依赖项] ------------------ [依赖项]API
-预构建:
-code-gen:[merge manifest]Android manifest文件中没有更改。[echo]处理aidl文件...[aidl]没有要编译的aidl文件。[echo] - [echo]处理渲染脚本文件...[renderscript]没有要编译的renderscript文件。[回声]-[回声]处理资源...[aapt]没有已更改的资源。R.java和Manifest.java未受影响。[echo] - [echo]处理BuildConfig类...[buildconfig]不需要生成新的buildconfig。
-预编译:
-编译:[echo]正在创建库输出jar文件。。。
-后期编译:
-混淆:
-dex:[回显]库项目:不转换字节码...
-crunch:[crunch]压缩源目录:/home/ricky/Development/workspace/location_library/LocationLib/res中的PNG文件
[crunsh]压缩到目标目录:/hom/ricky/developement/workspack/location/library/location/bin/res[crunh]压缩0个PNG文件以更新缓存
-package-resources: [echo] Library project: don package resources...
-package: [echo]库项目:不要打包apk...
-包装后:
-do-debug: [echo] 库项目: 不要创建 apk...[属性文件]更新属性文件: /home/ricky/Development/workspace/location_library/LocationLib/bin/build.prop [propertyfile] 更新属性文件: /home/ricky/Development/workspace/location_library/LocationLib/bin/build.prop [propertyfile] 更新属性文件: /home/ricky/Development/workspace/location_library/LocationLib/bin/build.prop [propertyfile] 更新属性文件: /home/ricky/Development/workspace/location_library/LocationLib/bin/build.prop
-构建后:
调试:
节点:
-设置-模式-检查:
-设置-调试-文件:
AndroidSDK工具修订版20.0.1[check env]安装在 /app/android-sdk-linux_86
-setup: [echo]项目名称:ExceptionHandlerLib [gettype]项目类型:Android库
-set-debug-模式:
-调试-混淆-检查:
-构建-设置:[echo]解决ExceptionHandlerLib的构建目标...[getTarget]项目目标:Android 4.1[getTarget]API级别:
16[echo] ---------- [echo]如果需要,创建输出目录...[echo] ---------- [echo]解决ExceptionHandlerLib的依赖项...[依赖项]库依赖项:[依赖项]没有库[依赖项][依赖项] ------------------ [依赖项]API
-预构建:
-code-gen:[merge manifest]Android manifest文件中没有更改。[echo]处理aidl文件...[aidl]没有要编译的aidl文件。[echo] - [echo]处理渲染脚本文件...[renderscript]没有要编译的renderscript文件。[回声]-[回声]处理资源...[aapt]没有已更改的资源。R.java和Manifest.java未受影响。[echo] - [echo]处理BuildConfig类...[buildconfig]不需要生成新的buildconfig。
-预编译:
-编译:[echo]正在创建库输出jar文件。。。
-后期编译:
-混淆:
-dex:[回显]库项目:不转换字节码...
-crunch: [crunch]压缩源目录中的PNG文件:/home/Ricky/Development/workspace/exception _ handler _ library/exception handler lib/RES[crunch]到目标目录:/home/Ricky/Development/workspace/exception _ handler _ library/exception handler lib/bin/RES[crunch]压缩0个PNG文件以更新缓存
-package-resources: [echo] Library project: don package resources...
-package: [echo]库项目:不要打包apk...
-包装后:
-do-debug:[回显]库项目:不创建apk...[属性文件]更新属性文件: /home/ricky/Development/workspace/exception_handler_library/ExceptionHandlerLib/bin/build.prop[属性文件]更新属性文件: /home/ricky/Development/workspace/exception_handler_library/ExceptionHandlerLib/bin/build.prop[属性文件]更新属性文件: /home/ricky/Development/workspace/exception_handler_library/ExceptionHandlerLib/bin/build.prop[属性文件]更新属性文件: /home/ricky/Development/workspace/exception_handler_library/ExceptionHandlerLib/bin/build.prop
-构建后:
调试:
-预构建:
-code-gen: [mergemanifest]将AndroidManifest文件合并为一个文件。[mergemanifest]合并项目和2个库中的清单。[mergemanifest]警告:[AndroidManifest.xml:3,AndroidManifest.xml:3]主清单具有,但库使用targetSdkVersion = ' 16 '[merge manifest]注意:主清单缺少声明,该声明的默认值为minSdkVersion或1。[mergemanifest]警告:[AndroidManifest.xml:3,AndroidManifest.xml:13]主清单具有,但库使用targetSdkVersion = ' 16 '[merge manifest]注意:主清单缺少声明,该声明的默认值为minSdkVersion或1。
构建失败的 /app/android-sdk-linux_86/tools/ant/build.xml:616:null
总时间:2 秒
编辑
我查看了< code >/app/Android-SDK-Linux _ 86/tools/ant/build . XML:616 ,发现下面一行抛出了null < code > enabled = " $ { manifest merger . enabled } "
这是整个街区
我会试着禁用合并清单看看会发生什么
编辑
似乎从project.properties中删除manifestmerger.enabled = true已经解决了我的问题。该项目现在可以完美地编译和运行了。我想我应该向android团队报告这个bug。我的清单有以下条目
<uses-sdk android:minSdkVersion="7" />
然而,如果我将targetSdkVersion提高到7以上,仍然不会调用onActivityResult(),所以这并没有真正解决根本问题,但是我的项目现在工作正常
兼容包中存在错误(请参阅此内容和此内容)
这里有一些建议:
>
如果您只想在清单中没有android: Target etSdkVersion
,您应该能够在Eclipse的Project Explorer中右键单击您的项目并选择Android Tools
检查以确保所有<code>Fragment-派生类都扩展了兼容库中的正确类(<code>android.support.v4.app.Fragment和<code<android.support.v4.app.FragmentActivity),并且没有意外扩展框架中的类(<<code>andro.app.Fragment或<code>android.app.Activity)。
此外,我发现奇怪的是,如果您将<code>targetSdkVersion</code>设置为16以外的任何值,您的项目就不会编译。问题/控制台/Lint窗口中是否指示了任何特定问题?还请检查是否有其他目标可用和/或选择为项目构建目标(右键单击项目,属性
在片段中(错误的开始活动结果)
getActivty().startActivityForResult(intent, requestCode);
// Cannot receive in fragment
在片段中(正确的start ActivityForResult)
startActivityForResult(intent, requestCode);
// use Fragment.startActivityForRusult()
// not Activity.startActivityForRusult()
在活动中
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
}
在片段中
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// Do Action
}
嗨,我在主片段内使用带有碎片网的viewPager。我试图从画廊或相机中获取图像到位图,但在选择照片并启动ActivityForResult后,它不会在onActivityResult中捕获... 以下是我如何调用startActivityForResult: 这是我的onActivityResult: 有什么想法吗?
我在google上搜索onactivityresult()是不推荐的。但我的问题没有解决。下面是片段的代码
本章提供了有关 版本控制 章节中提供的破坏性和非破坏性修改列表的详细说明。 什么算是一个破坏性(不兼容)的变化并没有明确的定义。本指南应该被视为指示性的,而不是每一种可能变化的全面清单。 这里列出的规则只涉及客户端兼容性。预期API生产者明白在部署方面的要求,包括实现细节的变化。 一般目的是,服务端更新到一个新的minor版本或patch版本不该破坏客户端。可预期的破坏类型有: 源代码兼容性:针对
语言补丁 Array.isArray Object.assign JSON.stringify console-polyfill Object.keys Object.is Array.prototype.forEach Function.prototype.bind 或者直接使用https://polyfill.io/ 提供的动态补丁方案 <script src="https://cdn.pol
在我片段中,我从图库中选择了照片 在manifest.xml中 在此之前,我的应用程序显示权限对话框。我按允许 此处请求权限对话框:
本文向大家介绍highcharts 兼容性,包括了highcharts 兼容性的使用技巧和注意事项,需要的朋友参考一下 示例 牌 支持的版本 IE浏览器 6.0 + 火狐浏览器 2.0以上 铬 1.0 + 苹果浏览器 4.0以上 歌剧 9.0 + iOS(Safari) 3.0 + Android浏览器 2.0以上 Highcharts支持旧版浏览器的jQuery 1.6+版本,以及现代浏览器的2