Cannot resolve Manifest.permission.ACCESS_FINE_LOCATION

When adding permissions to my manifest file, the below xml works.

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

However, this xml doesn’t work.

  • Android: Is it possible to read package name inside AndroidManifest.xml file
  • Two line text for MenuItem
  • Getting Google one-time authorization code
  • Get Recent and Running application list not processes
  • How can I get the correct DisplayMetrics from an AppWidget in Android?
  • Should we really call getLoaderManager().initLoader in onActivityCreated, which causes onLoadFinished being called twice
  • <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    

    Which one am I supposed to be using? If it’s the first one, why wouldn’t it work? How can I fix it?

    Also, I am getting an Android 6.0 runtime permissions related exception:

    java.lang.SecurityException: "gps" location provider requires ACCESS_FINE_LOCATION permission.
    

    When I try to add the permission to a String array in order to check the permission, Android Studio tells me it can’t resolve Manifest.permission in the below code:

    new String[]{Manifest.permission.ACCESS_FINE_LOCATION}
    

    Why would it be doing this? How can I fix it?

    Related posts:

    Android: Prompt user to save changes when Back button is pressed
    Is there a way prevent AlertDialog from closing with invalid inputs?
    How to add the AdSense to my apps
    Android Studio layout editor cannot render custom views
    How to import external font/ typeface in ANDROID STUDIO?
    How to set canOverrideExistingModule=true
  • How to clear inactive memory in Android programatically ?
  • how to change the image of a button with every click?
  • How to refresh preview on Android Studio 2.2?
  • Google Play Warning: WebViewClient.onReceivedSslError handler
  • Android volley to handle redirect
  • PhoneGap 3 plugin: exec() call to unknown plugin “…”
  • 8 Solutions collect form web for “Cannot resolve Manifest.permission.ACCESS_FINE_LOCATION”

    For the first part, you should be using <uses-permission> according the the Android Devlopers site. Try making sure you declare your permissions directly under the <manifest> tag, not in your <application> tag. It’s hard to know what your problem is without seeing your entire manifest file. Check out the link I posted above for more info on how to declare permissions in your manifest.

    In regards to your runtime permissions problem:

    With uses-permissions Cannot resolve that..

    new String[]{Manifest.permission.ACCESS_FINE_LOCATION}

    Why?

    Make sure you’re using android.Manifest instead of my.app.package.Manifest. A lot of times Android Studio will default to the latter instead of the former.

    So, your new line of code would look like:

    new String[]{android.Manifest.permission.ACCESS_FINE_LOCATION};
    

    Edit: I reformatted my answer.

    Edit 2: Be wary of importing android.Manifest. It can cause issues if you’re also importing my.app.package.Manifest. Other than that import android.Manifest is another valid way to resolve this issue.

    change this

    Manifest.permission.ACCESS_FINE_LOCATION

    into this

    android.Manifest.permission.ACCESS_FINE_LOCATION

    Try this! Since ACCESS_FINE_LOCATION available in following package so Add:

    import android.Manifest;
    

    ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­

    if you are working on dynamic permissions and any permission like ACCESS_FINE_LOCATION,ACCESS_COARSE_LOCATION giving error “cannot resolve method PERMISSION_NAME” in this case write you code with permission name and then rebuild your project this will regenerate the manifest(Manifest.permission) file

     if (Build.VERSION.SDK_INT >= 23) {
    
                if (checkSelfPermission(android.Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED
                        || checkSelfPermission(android.Manifest.permission.ACCESS_COARSE_LOCATION) == PackageManager.PERMISSION_GRANTED) {
    
                    mapView.setMyLocationEnabled(true); 
                }
            }
            else
            {
                mapView.setMyLocationEnabled(true);
    
            }
    

    Try this before running, make sure you have permission to access..

    try {
        location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
    } catch (SecurityException e) {
       dialogGPS(this.getContext()); // lets the user know there is a problem with the gps
    }
    

    Try this:

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M && ContextCompat.checkSelfPermission(this, android.Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {
            ActivityCompat.requestPermissions(this, new String[]{android.Manifest.permission.READ_EXTERNAL_STORAGE}, REQUEST_SELECT_PICTURE);
            return;
        }
    

    When you type “Manifest”, Android Studio should suggest you to choose a few options of Manifest. You should choose the one start android instead of the name of your project.

    If you access the reference of Manifest.java and you can find there is only 1-2 lines in “Permission” class, then you are referencing the wrong manifest class.

    Android Babe is a Google Android Fan, All about Android Phones, Android Wear, Android Dev and Android Games Apps and so on.