Skip to content

With the target API 31, I got an error on Android 12 phone and cannot install it. #2511

@buybuyxyz

Description

@buybuyxyz

Checklist

  • the issue is indeed a bug and not a support request
  • issue doesn't already exist: https://github.com/kivy/python-for-android/issues
  • I have a short, runnable example that reproduces the issue
  • I reproduced the problem with the latest development version (p4a.branch = develop)
  • I used the grave accent (aka backticks) to format code or logs when appropriated

Versions

  • Python: 3.8.9
  • OS:Ubuntu 20.04
  • Kivy:2.0.0
  • Cython: 0.29.24
  • OpenJDK: 11.0.11
  • Test equipment: Android 12 phone
  • P4A : develop

Description

// REPLACE ME: What are you trying to get done, what has happened, what went wrong, and what did you expect?

buildozer.spec

Command:

buildozer android debug deploy run

Spec file:

........
android.api = 30
.........
....

....
....

Logs

.......
adb: failed to install /home/youtube/kivy_buildozer/apps/products/mytest/bin/mytest-0.0.1-arm64-v8a-debug.apk: Failure [INSTALL_PARSE_FAILED_MANIFEST_MALFORMED: Failed parse during installPackageLI: /data/app/vmdl1588071693.tmp/base.apk (at Binary XML file line #80): com.google.android.gms.measurement.AppMeasurementInstallReferrerReceiver: Targeting S+ (version 31 and above) requires that an explicit value for android:exported be defined when intent filters are present]
Performing Streamed Install
.......

I edit python-for-android/pythonforandroid/bootstraps/sdl2/build/templates/AndroidManifest.tmpl.xml, but I cannot success.

  • original
                  android:screenOrientation="{{ args.orientation }}"
                  {% if args.activity_launch_mode %}
                  android:launchMode="{{ args.activity_launch_mode }}"
                  {% endif %}
                  >

add
android:exported="false"

  • The following are the things that didn't work after fixing
android:configChanges="mcc|mnc|locale|touchscreen|keyboard|keyboardHidden|navigation|orientation|screenLayout|fontScale|uiMode{% if args.min_sdk_version >= 8 %}|uiMode{% endif %}{% if args.min_sdk_version >= 13 %}|screenSize|smallestScreenSize{% endif %}{% if args.min_sdk_version >= 17 %}|layoutDirection{% endif %}{% if args.min_sdk_version >= 24 %}|density{% endif %}"
                  android:screenOrientation="{{ args.orientation }}"
                  {% if args.activity_launch_mode %}
                  android:launchMode="{{ args.activity_launch_mode }}"
                  {% endif %}
                  android:exported="false"
                  >

  • I dropped the target API to 30 and it was installed.

  • After a while, I think that the time will come when API31 is at least, so I would appreciate it if you could tell me how to install with target API31 as well.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions