Android API version issue for AndroidFingerprintAuth plugin


#1

Hi,

I’ve been trying to play with the HUGE number of native plugins added with the RC0 of Ionic2… Awesome job guys! =)

The AndroidFingerprintAuth plugin is giving me a tough time, though… Running the following code:

AndroidFingerprintAuth
  .isAvailable()
  .then(x => console.log(x))
  .catch(reason => console.warn(reason));

throws out the following warning:

minimum SDK version 23 required

my config.xml contains android-minSdkVersion equal to 16… I have tried changing this to 24… I have tried adding targetSdkVersion=23 too, as well as making both these values equal to 24… The file AndroidManifest.xml file updates whenever I build to reflect that the config.xml values are being used. But regardless of the API version I set, the AndroidFingerprintAuth plugin always gives the same API version error…

What could be the reason here? Am I doing something stupid? I have used Android SDK Manager to download both APIv23 and APIv24, but to no avail…

Best regards,

/Asim


#2

hey i have had a similar problem and editing you config or manifest wouldnt work

i found the easiest solution is this:

run ionic plugin list
save the list for later troubleshooting :slight_smile:

remove the android platform from your project:
ionic platform rm android

then re-add it make sure you have the sdk on your pc first though (notice @latest) you may need to update npm and node too but it will let you know!

ionic platform add android@latest

it should install all your plugins again if it misses a few do that manually using your list you made in the beginning and use --save so you don’t have the problem again


#3

Hi @fishgrind,

Thanks for the guidance… =)… But i still seem to have the same issue… Following the steps you outlined, my system specs are as follows:

npm v3.10.3
node v6.7.0
cordova cli v6.3.1
ionic framework v2.0.0-rc.0
ionic cli v2.1.0
ionic app lib v2.0.0-beta.20

My platforms.json file has the content:

{
    "ios": "4.1.1",
    "android": "latest"
}

My config.xml has the following relevant lines:

<preference name="android-minSdkVersion" value="23" />
<preference name="android-targetSdkVersion" value="23" />

My AndroidManifest.xml contains the following relevant lines:

<uses-sdk android:minSdkVersion="23" android:targetSdkVersion="23" />

The offending plugin AndroidFingerprintAuth is cordova-plugin-android-fingerprint-auth v0.2.0

I have both android-23 and android-24 platform SDKs inside ~/Library/Android/sdk/platforms/ folder…

But running the following code still gives the same warning:

AndroidFingerprintAuth
  .isAvailable()
  .then(x => console.log(x))
  .catch(reason => console.warn(reason));

=> 'minimum SDK version 23 required'

=(


#4

anyone can help me. i same issue when run project androidfingerprintauth ionic 2 show alert “minimum SDK version 23 required”

i already remove platform android and add again still same.
and already check AndroidManifest.xml :

sdk manager for 22,23,24 already installed but still get same error. i hope anyone can help me

i think the issue in build.gradle setting targetSdkVersion but i dont know to setting that

thx before

code :  
import { Component } from '@angular/core';
import { AndroidFingerprintAuth } from 'ionic-native';

import { NavController } from 'ionic-angular';

@Component({
  selector: 'page-contact',
  templateUrl: 'contact.html'
})
export class ContactPage {

  constructor(public navCtrl: NavController) {
  alert("test");
	  AndroidFingerprintAuth.isAvailable()
	  .then((result)=> {
		if(result.isAvailable){
		  // it is available

		  AndroidFingerprintAuth.show({ clientId: "myAppName", clientSecret: "so_encrypted_much_secure_very_secret" })
			.then(result => {
			   if(result.withFingerprint) {
				 alert('Successfully authenticated with fingerprint!');
			   } else if(result.withPassword) {
				 alert('Successfully authenticated with backup password!');
			   } else alert('Didn\'t authenticate!');
			})
			.catch(error => alert("1"+error));

		} else {
		  // fingerprint auth isn't available
		}
	  })
	  .catch(error => alert("2"+error)); //this alert show when run app

  }

}