2016-12-05 3 views
0

Die Beispielanwendung auf https://github.com/appcelerator-developer-relations/appc-sample-geocoder stürzt beim ersten Start aufgrund fehlender Berechtigungen ab. Ich konnte nicht herausfinden, wie ich dieses Verhalten verhindern kann. Irgendwelche Ideen? Nachfolgende Startups sind nach dem Erteilen der Berechtigungen in Ordnung.ti.map Berechtigungen auf Android 6.0.0

[ERROR] TiApplication: (main) [704,705] Sending event: exception on thread: main msg:java.lang.SecurityException: my location requires permission ACCESS_FINE_LOCATION or ACCESS_COARSE_LOCATION; Titanium 6.0.0,2016/11/13 01:23,undefined 
[ERROR] TiApplication: java.lang.SecurityException: my location requires permission ACCESS_FINE_LOCATION or ACCESS_COARSE_LOCATION 
[ERROR] TiApplication: at maps.ad.t.c(Unknown Source) 
[ERROR] TiApplication: at xj.onTransact(:com.google.android.gms.DynamiteModulesB:274) 
[ERROR] TiApplication: at android.os.Binder.transact(Binder.java:387) 
[ERROR] TiApplication: at com.google.android.gms.maps.internal.IGoogleMapDelegate$zza$zza.setMyLocationEnabled(Unknown Source) 
[ERROR] TiApplication: at com.google.android.gms.maps.GoogleMap.setMyLocationEnabled(Unknown Source) 
[ERROR] TiApplication: at ti.map.TiUIMapView.setUserLocationEnabled(TiUIMapView.java:281) 
[ERROR] TiApplication: at ti.map.TiUIMapView.processMapProperties(TiUIMapView.java:190) 
[ERROR] TiApplication: at ti.map.TiUIMapView.onMapReady(TiUIMapView.java:162) 
[ERROR] TiApplication: at com.google.android.gms.maps.SupportMapFragment$zza$1.zza(Unknown Source) 
[ERROR] TiApplication: at com.google.android.gms.maps.internal.zzt$zza.onTransact(Unknown Source) 
[ERROR] TiApplication: at android.os.Binder.transact(Binder.java:387) 
[ERROR] TiApplication: at zu.a(:com.google.android.gms.DynamiteModulesB:82) 
[ERROR] TiApplication: at maps.ad.t$5.run(Unknown Source) 
[ERROR] TiApplication: at android.os.Handler.handleCallback(Handler.java:739) 
[ERROR] TiApplication: at android.os.Handler.dispatchMessage(Handler.java:95) 
[ERROR] TiApplication: at android.os.Looper.loop(Looper.java:158) 
[ERROR] TiApplication: at android.app.ActivityThread.main(ActivityThread.java:7231) 
[ERROR] TiApplication: at java.lang.reflect.Method.invoke(Native Method) 
[ERROR] TiApplication: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230) 
[ERROR] TiApplication: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120) 
[ERROR] AndroidRuntime: FATAL EXCEPTION: main 

Das resultierende AndroidManifest.xml enthält die Berechtigungen [UPDATE]:

<?xml version="1.0" encoding="UTF-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.appcelerator.sample.mapping" android:versionCode="1" android:versionName="2.0.0"> 
    <uses-sdk android:minSdkVersion="14" android:targetSdkVersion="23"/> 
    <application android:icon="@drawable/appicon" android:label="Geocoder" android:name="GeocoderApplication" android:debuggable="false" android:theme="@style/appcelerator"> 
     <activity android:name=".GeocoderActivity" android:label="@string/app_name" android:theme="@style/Theme.Titanium" android:configChanges="keyboardHidden|orientation|screenSize"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN"/> 
       <category android:name="android.intent.category.LAUNCHER"/> 
      </intent-filter> 
     </activity> 
     <activity android:name="org.appcelerator.titanium.TiActivity" android:configChanges="keyboardHidden|orientation|screenSize"/> 
     <activity android:name="org.appcelerator.titanium.TiTranslucentActivity" android:configChanges="keyboardHidden|orientation|screenSize" android:theme="@style/Theme.AppCompat.Translucent"/> 
     <activity android:name="ti.modules.titanium.ui.android.TiPreferencesActivity" android:configChanges="screenSize"/> 
     <service android:name="com.appcelerator.aps.APSAnalyticsService" android:exported="false"/> 
     <meta-data android:name="com.google.android.maps.v2.API_KEY" android:value="AIzaSyBDuTWLdPRaKN2eTTQKVc-QDNdCS6RxzPM"/> 
     <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version"/> 
    </application> 
    <uses-feature android:glEsVersion="0x00020000" android:required="true"/> 
    <permission android:name="com.appcelerator.sample.mapping.permission.MAPS_RECEIVE" android:protectionLevel="signature"/> 
    <uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/> 
    <uses-permission android:name="com.appcelerator.sample.mapping.permission.MAPS_RECEIVE"/> 
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> 
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> 
    <uses-permission android:name="android.permission.INTERNET"/> 
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/> 
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> 
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 
    <uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION"/> 
</manifest> 

Titanium 6.0.0.GA, Android Version auf dem Gerät: 6.0.1

Antwort

0

< verwendet Zulassungs android : name = "android.permission.ACCESS_WIFI_STATE" />

< verwendet-erlaubnis android: name = "android.permission.ACCESS_NETWORK_STATE" />

< verwendet Zulassungs android: name = "android.permission.ACCESS_FINE_LOCATION" />

diese Berechtigungen in Ihrer hinzufügen Manifiest

+0

Danke, siehe meine Bearbeitung im ursprünglichen Beitrag. Das Manifest enthält die Berechtigungen nach dem Build – paddel10

+0

Bitte posten Sie Ihre Mainfiest-Datei –

+0

Arbeiten Sie auf Google Map? –

1

in Android 6.0 (API-Ebene 23) Beginning gewähren Benutzern Berechtigungen für Apps während die App läuft, nicht wenn sie die App installieren.

Also für immer Standort von Eibisch-Gerät benötigen Sie System für Benutzer Pop-up zeigen spezifische Erlaubnis

Dieser Link hilft Ihnen zu verstehen, ‚Anfordern von Berechtigungen zur Laufzeit‘ zu beantragen. https://developer.android.com/training/permissions/requesting.html

+0

Die App fordert während der Laufzeit/des Startvorgangs eine Berechtigung an, stürzt jedoch vorher ab (das Popup bleibt bestehen und der Benutzer kann die Berechtigung erteilen). Der nachfolgende Start stürzt nicht ab. – paddel10

+0

Ihr Logcat zeigt an, dass Sie diese beiden Berechtigungen für das Berechtigungsarray nicht 'ACCESS_FINE_LOCATION' oder 'ACCESS_COARSE_LOCATION' hinzugefügt haben. ActivityCompat.requestPermissions (thisActivity, new String [] {Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.ACCESS_COARSE_LOCATION}, MY_PERMISSIONS_REQUEST_GET_LOCATION); – Reena

+1

beachten Sie, diese App ist Titanium, nicht Java. Für Berechtigungen @ Paddel10 folgen Sie diesem Fluss: https://github.com/appcelerator-developer-relations/appc-sample-ti510/blob/master/app/controllers/permissions.js –

Verwandte Themen