我一直在爲使用android可比性庫(android-support-v4)的android應用程序工作。在SDK 20之前,我能夠使用我的清單中的以下uses-sdk
條目編譯我的應用程序。片段兼容性onActivityResult()不工作
<uses-sdk android:minSdkVersion="7" />
我開始活動結果的所有片段都正確地收到了結果。有一天(在我更新到SDK 20之前)我正在修復lint問題,並且根據lint標誌的請求向清單中添加了android:targetSdkVersion
,並且我很快意識到我的碎片沒有一個正在接收它們的onActivityResilt()調用。
現在,每當我更新到SDK 20.0.1時,我都被迫在清單中使用uses-sdk
條目中的android:targetSdkVersion
條目;否則R.java永遠不會生成。
這是我目前的uses-sdk
清單項
<uses-sdk
android:minSdkVersion="7"
android:targetSdkVersion="16" />
因爲這奇怪的bug目前,我的應用程序目前仍在打破。 我試着更新我的兼容庫最新版本r9。
此外,我已經雙重檢查了我的所有startActivityForResult()
調用片段。他們都通過片段的方法使用正確的調用。
即
this.startActivityForResult(intent, requestCode);
不
this.getActivity().startActivityForResult(intent, requestCode);
我目前的開發環境:
Android SDK 20.0.1
Android SDK Platform Tools 13
ADT 20.0.2
任何幫助將不勝感激,因爲這錯誤是CUR當然是阻止我進行最終測試的磚牆。
編輯
這裏是我的ant debug
$螞蟻調試 輸出構建文件: /home/ricky/Development/workspace/location_ringer/LocationRinger/build.xml
- 設置模式檢查:
-set-debug-files:
-check-env:[checkenv] Android SDK Tools Revision 20.0。1 [checkenv]安裝在/應用程序/機器人-SDK-linux_86
-setup: [回波]項目名稱:ListActivity [的GetType]項目類型:應用
-set調試模式:
-debug-混淆檢查:
-build-設置: [迴音]解決建設目標ListActivity ... [getTarget方法]項目目標:谷歌的API [getTarget方法]賣方:谷歌 公司[getTarget方法]平臺版本:4.1 [gettarget] API等級:
[echo] ---------- [echo]如果需要創建輸出目錄... [echo] ---------- [echo]解決ListActivity的依賴關係... [依賴項]庫依賴項:[依賴項] [依賴項] ------------------ [依賴項]有序庫:[依賴項] [依賴項] --- --------------- [依賴項] API < = 15:將annotations.jar添加到類路徑中。 [迴音] ---------- [迴音]與調試「建設圖書館......nodeps:
-set模式檢查:
-set -debug-文件:
-check-ENV:checkenv] Android SDK工具版本20.0.1 [checkenv]在/應用/ Android的SDK-linux_86安裝
-setup: [迴音]項目名稱:LocationLib [gettype]項目類型:Android庫
-set調試模式:
-debug-混淆檢查:
-build-設置: [迴音]解決建設目標LocationLib ... [getTarget方法]項目目標:谷歌API [gettarget]供應商:Google Inc. [gettarget]平臺版本:4.1 [gettarget] API等級:
[echo] ---------- [echo]如果需要,創建輸出目錄。 .. [echo] ---------- [echo]解決LocationLib的依賴關係... [de [依賴項]庫依賴項:[依賴項]無庫[依賴項] [依賴項] ------------------ [依賴項] API < = 15:將 annotations.jar添加到類路徑。- 預編譯:
-code根:[mergemanifest]在AndroidManifest文件沒有變更。 [echo]處理aidl文件... [aidl]沒有要編譯的AIDL文件。 [echo] ---------- [echo]處理RenderScript文件... [renderscript]無法編譯RenderScript文件。 [回聲] ---------- [回聲]處理資源... [aapt]沒有變化的資源。 R.java和Manifest.java保持不變。 [echo] ---------- [echo]處理BuildConfig類... [buildconfig]不需要生成新的BuildConfig。
- 預編譯:
-compile: [迴音]創建庫輸出jar文件...
-post編譯:
-obfuscate:
-dex : [echo]庫項目:不要轉換字節碼...
-crunch:[crunch]在源代碼目錄中琢磨PNG文件:/家庭/瑞奇/開發/工作區/ location_library/LocationLib/RES
[危機]爲目的地DIR: /家庭/瑞奇/開發/工作區/ location_library/LocationLib /斌/ RES [危機]嘎吱嘎吱0 PNG文件更新緩存-package資源: [迴音]庫項目:不打包資源...
-package: [迴音]庫項目:不打包APK ...
-post-package:
-do-debug: [echo]庫項目:不要創建apk ... [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。丙 [propertyfile]更新屬性文件: /home/ricky/Development/workspace/location_library/LocationLib/bin/build.prop
-post建造:
調試:
nodeps:
-set模式檢查:
-set-調試文件:
-check-ENV:[checkenv] Android SDK工具修訂20.0 .1 [checkenv]安裝在/ app/android-sdk-linux_86
-setup: [echo]項目名稱:ExceptionHandlerLib [gettype]項目類型:Android庫
-set調試模式:
-debug-混淆檢查:
-build-設置: [迴音]解決建設目標ExceptionHandlerLib ... [getTarget方法]項目目標:安卓4.1 [getTarget方法] API級別:
[迴音] ---------- [迴音]如果需要創建輸出目錄... [迴音] ---------- [echo]解決ExceptionHandlerLib的依賴關係...[依賴項]庫依賴項:[依賴項]無庫 [依賴項] [依賴項] ------------------ [依賴項] API < = 15: 將annotations.jar添加到類路徑。- 預編譯:
-code根:[mergemanifest]在AndroidManifest文件沒有變更。 [echo]處理aidl文件... [aidl]沒有要編譯的AIDL文件。 [echo] ---------- [echo]處理RenderScript文件... [renderscript]無法編譯RenderScript文件。 [回聲] ---------- [回聲]處理資源... [aapt]沒有變化的資源。 R.java和Manifest.java保持不變。 [echo] ---------- [echo]處理BuildConfig類... [buildconfig]不需要生成新的BuildConfig。
- 預編譯:
-compile: [迴音]創建庫輸出jar文件...
-post編譯:
-obfuscate:
-dex : [echo]庫項目:不要轉換字節碼...
-crunch:[crunch]在源代碼目錄中琢磨PNG文件:/ home/ricky /開發/工作區/ exception_handler_library/ExceptionHandlerLib/res [crunch]搗蛋0個PNG文件即將更新緩存
-package資源: [迴音]庫項目:不打包資源...
-package: [迴音]庫項目:不打包APK ...
- 後包裝:
-do-debug: [echo]庫項目:不要創建apk ... [propertyfile]更新屬性文件: /home/ricky/Development/workspace/exception_handler_library/ExceptionHandlerLib/bin/build.prop [propertyfile ]更新屬性文件: /home/ricky/Development/workspace/exception_handler_library/ExceptionHandlerLib/bin/build/prop [propertyfile]道具 [propertyfile]更新屬性文件: /home/ricky/Development/workspace/exception_handler_library/ExceptionHandlerLib/bin/build.prop
-post建造:
調試:
-pre-構建:
-code根:[mergemanifest]合併AndroidManifest文件合併爲一個。 [mergemanifest]合併項目和2個庫中的清單。 [mergemanifest]警告:[AndroidManifest.xml:3, AndroidManifest。注:主要清單缺少聲明,默認值爲 minSdkVersion或1. [mergemanifest]警告:[AndroidManifest.xml:3, AndroidManifest [xml:3]主清單有庫存使用targetSdkVersion = '16' [mergemanifest] .XML:13]主清單具有但庫使用targetSdkVersion = '16' [mergemanifest]注意:主清單缺乏聲明,默認爲值 的minSdkVersion或1
BUILD FAILED /應用程序/機器人-sdk- linux_86/tools/ant/build.xml:616:null
總時間:2秒
編輯
我看着/app/android-sdk-linux_86/tools/ant/build.xml:616
,發現下面一行扔空enabled="${manifestmerger.enabled}">
這裏是整個塊
我會嘗試禁用清單合併選項一看個究竟
編輯
這似乎是去除manifestmerger.enabled =從project.properties真正解決了我的問題。該項目現在編譯並完美工作。我想我應該向android團隊報告這個bug。我的表現有以下條目
<uses-sdk android:minSdkVersion="7" />
然而onActivityResult()如果我提出高於7的targetSdkVersion仍然不叫,所以這並不能真正解決根本問題,但我的項目現在能正常使用
支持庫的哪個版本您使用的? v9通過'onActivityResult(..)'修復了一些明顯的錯誤。 – 2012-08-01 18:10:39
我正在使用android-support-v4 r9 – 2012-08-01 18:28:07
你用'android:targetSdkVersion =「7」'試過了嗎? – pawelzieba 2012-08-01 19:59:28