{ "id": "161880", "key": "AC-4118", "fields": { "issuetype": { "id": "1", "description": "A problem which impairs or prevents the functions of the product.", "name": "Bug", "subtask": false }, "project": { "id": "12217", "key": "AC", "name": "Appcelerator - INBOX", "projectCategory": { "id": "10000", "description": "", "name": "Customer Service" } }, "resolution": { "id": "8", "description": "", "name": "Needs more info" }, "resolutiondate": "2016-07-27T17:30:51.000+0000", "created": "2016-07-20T15:51:05.000+0000", "labels": [ "android-6", "modules", "permissions" ], "versions": [ { "id": "17038", "name": "Appcelerator Studio 4.5.0", "archived": false, "released": false } ], "issuelinks": [], "assignee": { "name": "shossain", "key": "shossain", "displayName": "Shak Hossain", "active": false, "timeZone": "America/Los_Angeles" }, "updated": "2016-07-27T17:30:51.000+0000", "status": { "description": "The issue is considered finished, the resolution is correct. Issues which are closed can be reopened.", "name": "Closed", "id": "6", "statusCategory": { "id": 3, "key": "done", "colorName": "green", "name": "Done" } }, "components": [], "description": "Hello,\r\nI'm having this error on Android 6 permissions or modules, I don't know. I can't know what module or permission need the app because the libraries are form Titanium. This is my error:\r\n\r\n{code:java}\r\n\r\n[ERROR] : linker: readlink('/proc/self/fd/22') failed: Permission denied [fd=22]\r\n[INFO] : TiApplication: (main) [0,0] checkpoint, app created.\r\n[INFO] : TiApplication: (main) [81,81] Titanium 5.4.0 (2016/04/25 22:10 63d6351)\r\n[ERROR] : linker: warning: unable to get realpath for the library \"/system/lib/hw/gralloc.hi3635.so\". Will use given name.\r\n[ERROR] : linker: readlink('/proc/self/fd/22') failed: Permission denied [fd=22]\r\n[INFO] : DatabaseHelper: No value in database for platform key: 'unique_machine_id' returning supplied default ''\r\n[ERROR] : linker: warning: unable to get realpath for the library \"libion.so\". Will use given name.\r\n[ERROR] : HAL: load: id=gralloc != hmi->id=gralloc\r\n[INFO] : DatabaseHelper: No value in database for platform key: 'hardware_machine_id' returning supplied default ''\r\n[INFO] : TiApplication: (main) [383,464] Titanium Javascript runtime: v8\r\n[ERROR] : linker: readlink('/proc/self/fd/26') failed: Permission denied [fd=26]\r\n[ERROR] : linker: warning: unable to get realpath for the library \"/data/app/es.renr.manager-1/lib/arm/libstlport_shared.so\". Will use given name.\r\n[ERROR] : linker: readlink('/proc/self/fd/26') failed: Permission denied [fd=26]\r\n[ERROR] : linker: warning: unable to get realpath for the library \"/data/app/es.renr.manager-1/lib/arm/libkroll-v8.so\". Will use given name.\r\n[INFO] : HwCust: Constructor found for class android.app.HwCustHwWallpaperManagerImpl\r\n[INFO] : TiRootActivity: (main) [0,0] checkpoint, on root activity create, savedInstanceState: null\r\n[WARN] : V8Object: (KrollRuntimeThread) [83,83] Runtime disposed, cannot set property 'userAgent'\r\n[ERROR] : linker: readlink('/proc/self/fd/26') failed: Permission denied [fd=26]\r\n[ERROR] : linker: warning: unable to get realpath for the library \"/data/app/es.renr.manager-1/lib/arm/libti.sq.so\". Will use given name.\r\n[ERROR] : TiApplication: (KrollRuntimeThread) [39,122] Sending event: exception on thread: KrollRuntimeThread msg:java.lang.UnsatisfiedLinkError: dlopen failed: /data/app/es.renr.manager-1/lib/arm/libti.sq.so: has text relocations; Titanium 5.4.0,2016/04/25 22:10,63d6351\r\n[ERROR] : TiApplication: java.lang.UnsatisfiedLinkError: dlopen failed: /data/app/es.renr.manager-1/lib/arm/libti.sq.so: has text relocations\r\n[ERROR] : TiApplication: \tat java.lang.Runtime.loadLibrary(Runtime.java:384)\r\n[ERROR] : TiApplication: \tat java.lang.System.loadLibrary(System.java:1086)\r\n[ERROR] : TiApplication: \tat org.appcelerator.kroll.runtime.v8.V8Runtime.loadExternalModules(V8Runtime.java:132)\r\n[ERROR] : TiApplication: \tat org.appcelerator.kroll.runtime.v8.V8Runtime.initRuntime(V8Runtime.java:99)\r\n[ERROR] : TiApplication: \tat org.appcelerator.kroll.KrollRuntime.doInit(KrollRuntime.java:205)\r\n[ERROR] : TiApplication: \tat org.appcelerator.kroll.KrollRuntime$KrollRuntimeThread.run(KrollRuntime.java:114)\r\n{code}\r\n\r\nI'm cheking this permissions, but the error appear BEFORE this code is exectued:\r\n\r\n{code:java}\r\n\r\nexports.checkPermissions = function(){\r\n\t\r\n\tvar permissionsToRequest = [];\r\n\t \r\n\t// check WRITE_EXTERNAL_STORAGE permission\r\n\tvar storagePermission = \"android.permission.WRITE_EXTERNAL_STORAGE\";\r\n\tvar hasStoragePermission = Ti.Android.hasPermission(storagePermission);\r\n\t \r\n\tif(!hasStoragePermission){\r\n\t\tpermissionsToRequest.push(storagePermission);\r\n\t}\r\n\t \r\n\t// check RECORD_AUDIO permission\r\n\tvar audioPermission = \"android.permission.RECORD_AUDIO\";\r\n\tvar hasAudioPermission = Ti.Android.hasPermission(audioPermission);\r\n\t \r\n\tif(!hasAudioPermission){\r\n\t\tpermissionsToRequest.push(audioPermission);\r\n\t}\r\n\t\r\n\t// check ACCESS_NETWORK_STATE permission\r\n\tvar networkPermission = \"android.permission.ACCESS_NETWORK_STATE\";\r\n\tvar hasNetworkPermission = Ti.Android.hasPermission(networkPermission);\r\n\t \r\n\tif(!hasNetworkPermission){\r\n\t\tpermissionsToRequest.push(networkPermission);\r\n\t}\r\n\t\r\n\t// check INTERNET permission\r\n\tvar internetPermission = \"android.permission.INTERNET\";\r\n\tvar hasInternetPermission = Ti.Android.hasPermission(internetPermission);\r\n\t \r\n\tif(!hasInternetPermission){\r\n\t\tpermissionsToRequest.push(internetPermission);\r\n\t}\r\n\t\r\n\t// check ACCESS_COARSE_LOCATION permission\r\n\tvar locationPermission = \"android.permission.ACCESS_COARSE_LOCATION\";\r\n\tvar hasLocationPermission = Ti.Android.hasPermission(locationPermission);\r\n\t \r\n\tif(!hasLocationPermission){\r\n\t\tpermissionsToRequest.push(locationPermission);\r\n\t}\r\n\t\r\n\t// check ACCESS_FINE_LOCATION permission\r\n\tvar location2Permission = \"android.permission.ACCESS_FINE_LOCATION\";\r\n\tvar hasLocation2Permission = Ti.Android.hasPermission(location2Permission);\r\n\t \r\n\tif(!hasLocation2Permission){\r\n\t\tpermissionsToRequest.push(location2Permission);\r\n\t}\r\n\r\n\t \r\n\t// request permission\r\n\tTi.Android.requestPermissions(permissionsToRequest, function(e) {\r\n\t\tif (e.success) {\r\n\t\t\tTi.API.info(\"SUCCESS\");\r\n\t\t} else {\r\n\t\t\tTi.API.info(\"ERROR: \" + e.error);\r\n\t\t}\r\n\t});\r\n};\r\n{code}\r\n\r\n", "attachment": [], "flagged": false, "summary": "Error with permissions on Android 6", "creator": { "name": "amurcia", "key": "amurcia", "displayName": "Anna", "active": true, "timeZone": "America/Los_Angeles" }, "subtasks": [], "reporter": { "name": "amurcia", "key": "amurcia", "displayName": "Anna", "active": true, "timeZone": "America/Los_Angeles" }, "environment": "Titanium SDK 5.4.0\r\n{code:java}\r\n// Some comments here\r\npublic String getFoo()\r\n{\r\n return foo;\r\n}\r\n{code}\r\n", "comment": { "comments": [ { "id": "391117", "author": { "name": "sdarda", "key": "sdarda", "displayName": "Sharif AbuDarda", "active": false, "timeZone": "Asia/Dhaka" }, "body": "Hello, Can you follow the guide in here http://docs.appcelerator.com/platform/latest/#!/guide/Quick_Start_Guide_for_Android_APS_SDK and try to define the permissions in manifest of tiapp.xml file. ", "updateAuthor": { "name": "sdarda", "key": "sdarda", "displayName": "Sharif AbuDarda", "active": false, "timeZone": "Asia/Dhaka" }, "created": "2016-07-20T19:35:29.000+0000", "updated": "2016-07-20T19:35:29.000+0000" } ], "maxResults": 1, "total": 1, "startAt": 0 } } }