アプリケーションでcordova 指紋認証プラグインを使用していますが、アプリケーションがクラッシュし、logcat に以下のエラーが表示されます。
11-14 11:12:47.671: W/PluginManager(30565): スレッド警告: FingerprintAuth.authenticate への exec() 呼び出しにより、メイン スレッドが 33 ミリ秒ブロックされました。プラグインは CordovaInterface.getThreadPool() を使用する必要があります。
11-14 11:12:47.712: D/FingerprintAuthDialog(30565): disableBackup: false 11-14 11:12:47.713: W/ResourceType(30565): リソース番号 0x00000000 の値を取得するときにパッケージ識別子がありません 11-14 11: 12:47.713: D/AndroidRuntime(30565): VM 11-14 をシャットダウンしています 11:12:47.716: E/AndroidRuntime(30565): 致命的な例外: メイン 11-14 11:12:47.716: E/AndroidRuntime(30565):プロセス: com.fingerPrint、PID: 30565 11-14 11:12:47.716: E/AndroidRuntime(30565): android.content.res.Resources$NotFoundException: リソース ID #0x0 11-14 11:12:47.716: E/ AndroidRuntime(30565): android.content.res.Resources.getValue(Resources.java:1351) 11-14 11:12:47.716: E/AndroidRuntime(30565): android.content.res.Resources.loadXmlResourceParser(Resources) .java:2777) 11-14 11:12:47.716: E/AndroidRuntime(30565): android.content.res.Resources で。getLayout(Resources.java:1165) 11-14 11:12:47.716: E/AndroidRuntime(30565): android.view.LayoutInflater.inflate(LayoutInflater.java:421) 11-14 11:12:47.716: E/ AndroidRuntime(30565): com.fingerPrint.FingerprintAuthenticationDialogFragment.onCreateView(FingerprintAuthenticationDialogFragment.java:87) 11-14 11:12:47.716: E/AndroidRuntime(30565): android.app.Fragment.performCreateView(Fragment.java:2220) ) 11-14 11:12:47.716: E/AndroidRuntime(30565): android.app.FragmentManagerImpl.moveToState(FragmentManager.java:973) で 11-14 11:12:47.716: E/AndroidRuntime(30565): Android で.app.FragmentManagerImpl.moveToState(FragmentManager.java:1148) 11-14 11:12:47.716: E/AndroidRuntime(30565): android.app.BackStackRecord.run(BackStackRecord.java:793) 11-14 11:12 :47.716: E/AndroidRuntime(30565): android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1537) 11-14 11:12:47.716: E/AndroidRuntime(30565): android.app.FragmentManagerImpl$1.run(FragmentManager.java:482) 11-14 11:12:47.716 : E/AndroidRuntime(30565): android.os.Handler.handleCallback(Handler.java:746) 11-14 11:12:47.716: E/AndroidRuntime(30565): android.os.Handler.dispatchMessage(Handler. java:95) 11-14 11:12:47.716: E/AndroidRuntime(30565): android.os.Looper.loop(Looper.java:148) 11-14 11:12:47.716: E/AndroidRuntime(30565) : android.app.ActivityThread.main(ActivityThread.java:5443) 11-14 11:12:47.716: E/AndroidRuntime(30565): java.lang.reflect.Method.invoke(ネイティブ メソッド) 11-14 11 :12:47.716: E/AndroidRuntime(30565): com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:728) 11-14 11:12:47.716:E/AndroidRuntime(30565): com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) 11-14 11:12:47.718: E/com.worklight.common.Logger$UncaughtExceptionHandler(30565): Logger.java:471 の Logger$UncaughtExceptionHandler.uncaughtException :: キャッチされない例外 11-14 11:12:47.718: E/com.worklight.common.Logger$UncaughtExceptionHandler(30565): android.content.res.Resources$NotFoundException: リソースID #0x0 11-14 11:12:47.718: E/com.worklight.common.Logger$UncaughtExceptionHandler(30565): android.content.res.Resources.getValue(Resources.java:1351) で 11-14 11:12 :47.718: E/com.worklight.common.Logger$UncaughtExceptionHandler(30565): android.content.res.Resources.loadXmlResourceParser(Resources.java:2777) 11-14 11:12:47.718: E/com.worklight. common.Logger$UncaughtExceptionHandler(30565): Android で。content.res.Resources.getLayout(Resources.java:1165) 11-14 11:12:47.718: E/com.worklight.common.Logger$UncaughtExceptionHandler(30565): android.view.LayoutInflater.inflate(LayoutInflater.java で:421) 11-14 11:12:47.718: E/com.worklight.common.Logger$UncaughtExceptionHandler(30565): com.fingerPrint.FingerprintAuthenticationDialogFragment.onCreateView(FingerprintAuthenticationDialogFragment.java:87) で 11-14 11:12:47.718 : E/com.worklight.common.Logger$UncaughtExceptionHandler(30565): android.app.Fragment.performCreateView(Fragment.java:2220) 11-14 11:12:47.718: E/com.worklight.common.Logger$ UncaughtExceptionHandler(30565): android.app.FragmentManagerImpl.moveToState(FragmentManager.java:973) 11-14 11:12:47.718: E/com.worklight.common.Logger$UncaughtExceptionHandler(30565): android.app.FragmentManagerImpl.moveToState(FragmentManager.java:1148) 11-14 11:12:47.718: E/com.worklight.common.Logger$UncaughtExceptionHandler(30565): android.app.BackStackRecord.run(BackStackRecord.java:793) で 11 -14 11:12:47.718: E/com.worklight.common.Logger$UncaughtExceptionHandler(30565): android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1537) 11-14 11:12:47.718: E/com .worklight.common.Logger$UncaughtExceptionHandler(30565): android.app.FragmentManagerImpl$1.run(FragmentManager.java:482) 11-14 11:12:47.718: E/com.worklight.common.Logger$UncaughtExceptionHandler(30565) ): android.os.Handler.handleCallback(Handler.java:746) 11-14 11:12:47.718: E/com.worklight.common.Logger$UncaughtExceptionHandler(30565): android.os.Handler.dispatchMessage( Handler.java:95) 11-14 11:12:47.718:E/com.worklight.common.Logger$UncaughtExceptionHandler(30565): android.os.Looper.loop(Looper.java:148) 11-14 11:12:47.718: E/com.worklight.common.Logger$UncaughtExceptionHandler (30565): android.app.ActivityThread.main(ActivityThread.java:5443) 11-14 11:12:47.718: E/com.worklight.common.Logger$UncaughtExceptionHandler(30565): java.lang.reflect で。 Method.invoke(ネイティブ メソッド) 11-14 11:12:47.718: E/com.worklight.common.Logger$UncaughtExceptionHandler(30565): com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java: 728) 11-14 11:12:47.718: E/com.worklight.common.Logger$UncaughtExceptionHandler(30565): com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) 11-14 11: 12:47.723: D/com.worklight.wlclient.api.WLLifecycleHelper(30565): WLLifecycleHelper.WLLifecycleHelper.java:109 の logAppSession :: 開始タイムスタンプなしでアプリのクラッシュを記録しようとしました
手順:
- プラグインFingerprintAuth.java、FingerprintAuthenticationDialogFragment .java、FingerprintUiHelper.javaファイルをandroid/src/com/フォルダーに追加しました
config.xmlに追加
<feature name="FingerprintAuth"> <param name="android-package" value="com.fingerPrint.FingerprintAuth"/> </feature>
common/jsフォルダーにFingerprintAuth.jsを追加
毎回、デバイスにデプロイする前にcordova_plugins.jsに以下を追加します
{ "id": "FingerprintAuth", "file": "../js/FingerprintAuth.js", "clobbers": [ "FingerprintAuth" ] }
5.main.jsファイルのコードの下に追加された指紋認証を確認するには
FingerprintAuth.isAvailable(function(result) {
if (result.isAvailable) {
var client_id = "Your client ID";
var client_secret = "A very secret client secret (once per device)";
if(result.hasEnrolledFingerprints){
FingerprintAuth.show({
clientId: client_id,
clientSecret: client_secret
}, function (result) {
if (result.withFingerprint) {
alert("Authentication Success");
//$location.path("singin");
} else if (result.withPassword) {
alert("Authenticated with backup password");
}
}, function(error) {
console.log(error); // "Fingerprint authentication not available"
});
}else{
alert("Fingerprint auth available, but no fingerprint registered on the device");
}
}
}, function(message) {
alert("Cannot detect fingerprint device : "+ message);
});