CodenameOne - ошибка разрешения Android с android.buildToolsVersion = 27 - PullRequest
0 голосов
/ 04 сентября 2018

Я пытался собрать свое приложение с android.buildToolsVersion = 27. Сборка и установка прошли успешно, но не удалось при запуске с:

E / DatabaseUtils (2346): java.lang.SecurityException: разрешение Отказ: получить / установить настройки для пользователя, который просит работать как пользователь -2, но вызывает от пользователя 0; это требует android.permission.INTERACT_ACROSS_USERS_FULL E / DatabaseUtils (2346): в com.android.server.am.ActivityManagerService.handleIncomingUser (ActivityManagerService.java:13140) E / DatabaseUtils (2346): в android.app.ActivityManager.handleIncomingUser (ActivityManager.java:2038) E / DatabaseUtils (2346): в com.android.providers.settings.SettingsProvider.callFromPackage (SettingsProvider.java:607) E / DatabaseUtils (2346): в android.content.ContentProvider $ Transport.call (ContentProvider.java:279) E / DatabaseUtils (2346): в android.content.ContentProviderNative.onTransact (ContentProviderNative.java:273) E / DatabaseUtils (2346): в android.os.Binder.execTransact (Binder.java:388) E / DatabaseUtils ( 2346): в dalvik.system.NativeStart.run (собственный метод) W / ActivityManager (2346): Отказ в доступе: получить / установить настройки для пользователя просит работать как пользователь -2, но звонит от пользователя 0; это требует android.permission.INTERACT_ACROSS_USERS_FULL

Также попытался установить для android.targetSDKVersion значения 27, 25 и 23 с тем же результатом.

Я добавил это в android.xpermissions, с тем же результатом:

<permission android:protectionLevel="signature" android:name="android.permission.INTERACT_ACROSS_USERS_FULL"/>
<uses-permission android:name="android.permission.INTERACT_ACROSS_USERS_FULL"/>

Ранее я использовал android.buildToolsVersion = 25 без указания android.targetSDKVersion и все работало. Эта настройка все еще работает, однако я бы хотел перейти на более новую версию.

Я использую Samsung Galaxy S3 с Android 4.3

Любая помощь?

Спасибо

Ответы [ 2 ]

0 голосов
/ 05 сентября 2018

Сбой вызван не этой ошибкой, а другой, из-за того, что при сборке для API уровня 27 поддержка v4 прекращается, и я использовал ее для получения токена gcm. Я задокументировал все здесь: CodenameOne - приложение Android не запускается при сборке с android.buildToolsVersion = 27

0 голосов
/ 05 сентября 2018

Вы не можете добавить это разрешение без подписи OEM. Вы используете API, которые работали в эпоху 4.x, например, оставляя пользовательскую изолированную программную среду, чтобы открыть базу данных в произвольном месте для чтения / записи. -2 - это, по сути, привилегии вашего приложения, тогда как пользователь 0 означает привилегии владельца устройства. Вы, вероятно, не можете получить их.

Ответ в том, что Google больше не позволяет вам это делать. Вы можете настроить таргетинг на более старые уровни API, но Google не примет вас в игровой магазин, если вы сделаете это.

...