Совместимость фрагментов onActivityResult ()Не работает

Я работаю над приложением для Android, в котором используется библиотека совместимости Android (android -support -v4 ). До SDK 20 я мог скомпилировать свое приложение со следующей записью uses-sdkв своем манифесте.

<uses-sdk android:minSdkVersion="7" />  

Все мои фрагменты, которые запустили действие для результата, получили свои результаты правильно.

Однажды (Перед обновлением до SDK 20 )я исправлял проблемы с lint и добавил android:targetSdkVersionв манифест в соответствии с запросом флага lint, и вскоре понял, что ни один из моих фрагментов не получает onActivityResilt ()звонки.

Теперь каждый раз, когда я обновлялся до SDK 20.0.1, я вынужден использовать запись android:targetSdkVersionв uses-sdkв своем манифесте; в противном случае R.java никогда не генерируется.

Вот моя текущая uses-sdkзапись манифеста

<uses-sdk
    android:minSdkVersion="7"
    android:targetSdkVersion="16" />

В настоящее время из-за этой странной ошибки мое приложение все еще не работает. Я попытался обновить свою библиотеку совместимости до последней версии 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

Будем очень признательны за любую помощь, так как эта ошибка в настоящее время является кирпичной стеной, которая мешает моим окончательным бета-тестам.

РЕДАКТИРОВАТЬ

Вот мой выводant debug

$ ant debug Buildfile: /home/ricky/Development/workspace/location_ringer/LocationRinger/build.xml

-set-mode-check:

-set-debug-files:

-check-env: [checkenv] Android SDK Tools Revision 20.0.1 [checkenv] Installed at /app/android-sdk-linux_86

-setup: [echo] Project Name: ListActivity [gettype] Project Type: Application

-set-debug-mode:

-debug-obfuscation-check:

-build-setup: [echo] Resolving Build Target for ListActivity... [gettarget] Project Target: Google APIs [gettarget] Vendor: Google Inc. [gettarget] Platform Version: 4.1 [gettarget] API level:
16 [echo] ---------- [echo] Creating output directories if needed... [echo] ---------- [echo] Resolving Dependencies for ListActivity... [dependency] Library dependencies: [dependency] [dependency] ------------------ [dependency] Ordered libraries: [dependency] [dependency] ------------------ [dependency] API<=15: Adding annotations.jar to the classpath. [echo] ---------- [echo] Building Libraries with 'debug'...

nodeps:

-set-mode-check:

-set-debug-files:

-check-env: [checkenv] Android SDK Tools Revision 20.0.1 [checkenv] Installed at /app/android-sdk-linux_86

-setup: [echo] Project Name: LocationLib [gettype] Project Type: Android Library

-set-debug-mode:

-debug-obfuscation-check:

-build-setup: [echo] Resolving Build Target for LocationLib... [gettarget] Project Target: Google APIs [gettarget] Vendor: Google Inc. [gettarget] Platform Version: 4.1 [gettarget] API level:
16 [echo] ---------- [echo] Creating output directories if needed... [echo] ---------- [echo] Resolving Dependencies for LocationLib... [dependency] Library dependencies: [dependency] No Libraries [dependency] [dependency] ------------------ [dependency] API<=15: Adding annotations.jar to the classpath.

-pre-build:

-code-gen: [mergemanifest] No changes in the AndroidManifest files. [echo] Handling aidl files... [aidl] No AIDL files to compile. [echo] ---------- [echo] Handling RenderScript files... [renderscript] No RenderScript files to compile. [echo] ---------- [echo] Handling Resources... [aapt] No changed resources. R.java and Manifest.java untouched. [echo] ---------- [echo] Handling BuildConfig class... [buildconfig] No need to generate new BuildConfig.

-pre-compile:

-compile: [echo] Creating library output jar file...

-post-compile:

-obfuscate:

-dex: [echo] Library project: do not convert bytecode...

-crunch: [crunch] Crunching PNG Files in source dir: /home/ricky/Development/workspace/location_library/LocationLib/res
[crunch] To destination dir: /home/ricky/Development/workspace/location_library/LocationLib/bin/res [crunch] Crunched 0 PNG files to update cache

-package-resources: [echo] Library project: do not package resources...

-package: [echo] Library project: do not package apk...

-post-package:

-do-debug: [echo] Library project: do not create apk... [propertyfile] Updating property file: /home/ricky/Development/workspace/location_library/LocationLib/bin/build.prop [propertyfile] Updating property file: /home/ricky/Development/workspace/location_library/LocationLib/bin/build.prop [propertyfile] Updating property file: /home/ricky/Development/workspace/location_library/LocationLib/bin/build.prop [propertyfile] Updating property file: /home/ricky/Development/workspace/location_library/LocationLib/bin/build.prop

-post-build:

debug:

nodeps:

-set-mode-check:

-set-debug-files:

-check-env: [checkenv] Android SDK Tools Revision 20.0.1 [checkenv] Installed at /app/android-sdk-linux_86

-setup: [echo] Project Name: ExceptionHandlerLib [gettype] Project Type: Android Library

-set-debug-mode:

-debug-obfuscation-check:

-build-setup: [echo] Resolving Build Target for ExceptionHandlerLib... [gettarget] Project Target: Android 4.1 [gettarget] API level:
16 [echo] ---------- [echo] Creating output directories if needed... [echo] ---------- [echo] Resolving Dependencies for ExceptionHandlerLib... [dependency] Library dependencies: [dependency] No Libraries [dependency] [dependency] ------------------ [dependency] API<=15: Adding annotations.jar to the classpath.

-pre-build:

-code-gen: [mergemanifest] No changes in the AndroidManifest files. [echo] Handling aidl files... [aidl] No AIDL files to compile. [echo] ---------- [echo] Handling RenderScript files... [renderscript] No RenderScript files to compile. [echo] ---------- [echo] Handling Resources... [aapt] No changed resources. R.java and Manifest.java untouched. [echo] ---------- [echo] Handling BuildConfig class... [buildconfig] No need to generate new BuildConfig.

-pre-compile:

-compile: [echo] Creating library output jar file...

-post-compile:

-obfuscate:

-dex: [echo] Library project: do not convert bytecode...

-crunch: [crunch] Crunching PNG Files in source dir: /home/ricky/Development/workspace/exception_handler_library/ExceptionHandlerLib/res [crunch] To destination dir: /home/ricky/Development/workspace/exception_handler_library/ExceptionHandlerLib/bin/res [crunch] Crunched 0 PNG files to update cache

-package-resources: [echo] Library project: do not package resources...

-package: [echo] Library project: do not package apk...

-post-package:

-do-debug: [echo] Library project: do not create apk... [propertyfile] Updating property file: /home/ricky/Development/workspace/exception_handler_library/ExceptionHandlerLib/bin/build.prop [propertyfile] Updating property file: /home/ricky/Development/workspace/exception_handler_library/ExceptionHandlerLib/bin/build.prop [propertyfile] Updating property file: /home/ricky/Development/workspace/exception_handler_library/ExceptionHandlerLib/bin/build.prop [propertyfile] Updating property file: /home/ricky/Development/workspace/exception_handler_library/ExceptionHandlerLib/bin/build.prop

-post-build:

debug:

-pre-build:

-code-gen: [mergemanifest] Merging AndroidManifest files into one. [mergemanifest] Merging manifests from project and 2 libraries. [mergemanifest] Warning: [AndroidManifest.xml:3, AndroidManifest.xml:3] Main manifest has but library uses targetSdkVersion='16' [mergemanifest] Note: main manifest lacks a declaration, which defaults to value minSdkVersion or 1. [mergemanifest] Warning: [AndroidManifest.xml:3, AndroidManifest.xml:13] Main manifest has but library uses targetSdkVersion='16' [mergemanifest] Note: main manifest lacks a declaration, which defaults to value minSdkVersion or 1.

BUILD FAILED /app/android-sdk-linux_86/tools/ant/build.xml:616: null

Total time: 2 seconds

РЕДАКТИРОВАТЬ

Я заглянул в /app/android-sdk-linux_86/tools/ant/build.xml:616и обнаружил, что в следующей строке выдается нульenabled="${manifestmerger.enabled}">

вот и весь блок

Я попытаюсь отключить параметр слияния манифеста и посмотреть, что произойдет

РЕДАКТИРОВАТЬ

Казалось бы, удаление manifestmerger.enabled=true из project.properties решило мою проблему.Теперь проект компилируется и работает отлично. Я думаю, что должен сообщить об этой ошибке команде Android. В моем манифесте есть следующая запись

<uses-sdk android:minSdkVersion="7"  />

Однако onActivityResult ()по-прежнему не вызывается, если я поднимаю targetSdkVersion выше 7, так что это на самом деле не решает корневой проблемы, но мой проект теперь работает правильно

6
задан Cœur 21 December 2017 в 05:32
поделиться