繁体   English   中英

使用cordova-plugin-android-fingerprint-auth时,基于MobileFirst 7.1的应用程序崩溃

[英]Crash in MobileFirst 7.1-based app when using cordova-plugin-android-fingerprint-auth

我在我的应用程序中使用cordova指纹auth插件 ,但应用程序崩溃并在logcat中显示以下错误。

11-14 11:12:47.671:W / PluginManager(30565):THREAD WARNING:exec()调用FingerprintAuth.authenticate阻塞主线程33ms。 插件应该使用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(参考资料) .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) :at com.fingerPrint.FingerprintAuthenticationDialogFragment.onCreateView(FingerprintAuthenticationDialogFragment.java:87)11-14 11:12:47.716:E / AndroidRuntime(30565):at 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):at android.app.FragmentManagerImpl .moveToState(FragmentManager.java:1148)11-14 11:12:47.716:E / AndroidRuntime(30565):at 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(句柄 r.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):at java.lang.reflect.Method.invoke(Native Method)11- 14 11:12:47.716:E / AndroidRuntime(30565):at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:728)11-14 11:12:47.716:E / AndroidRuntime(30565) :at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)11-14 11:12:47.718:E / com.worklight.common.Logger $ UncaughtExceptionHandler(30565):Logger $ UncaughtExceptionHandler.uncaughtException in Logger.java:471 :: Uncaught Exception 11-14 11:12:47.718:E / com.worklight.common.Logger $ UncaughtExceptionHandler(30565):android.content.res.Resources $ NotFoundException:Resource 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):at com。 fingerPrint.FingerprintAuthenticationDialogFragment.onCreateView(FingerprintAuthenticationDialogFragment.java:87)11-14 11:12:47.718:E / com.worklight.common.Logger $ UncaughtExceptionHandler(30565):at android.app.Fragment.performCreateView(Fragment.java:2220) )11-14 11:12:47.718:E / com.worklight.common.Logger $ UncaughtExceptionHandler(30565):at 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):at android .app.BackStackRecord.run(BackStackRecord.java:793)11-14 11:12:47.718:E / com.worklight.common.Logger $ UncaughtExceptionHandler(30565):at android.app.FragmentManagerImpl.execPendingActions(FragmentManager.java: 1537)11-14 11:12:47.718:E / com.worklight.common.Logger $ UncaughtExceptionHandler(30565):at android.app.FragmentManagerImpl $ 1.run(FragmentManager.java:482)11-14 11:12:47.718 :E / com.worklight.common.Logger $ UncaughtExceptionHandler(30565):at 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):at java.lang.reflect.Method.invoke(Native Method)11-14 11:12:47.718:E / com.worklight.common.Logger $ UncaughtExceptionHandler(30565):at com.android.internal.os .ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:728)11-14 11:12:47.718:E / com.worklight.common.Logger $ UncaughtExceptionHandler(30565):at com.android.internal.os.ZygoteInit.main( ZygoteInit.java:618)11-14 11:12:47.723:D / com.worklight.wlclient.api.WLLifecycleHelper(30565):WLLifecycleHelper.java:109中的WLLifecycleHelper.logAppSession ::试图记录一个没有启动的应用程序崩溃时间戳

遵循的步骤:

  1. 添加插件FingerprintAuth.javaFingerprintAuthenticationDialogFragment .javaFingerprintUiHelper.java文件到android / src / com /文件夹
  2. 添加到config.xml

     <feature name="FingerprintAuth"> <param name="android-package" value="com.fingerPrint.FingerprintAuth"/> </feature> 
  3. common / js文件夹中添加了FingerprintAuth.js

  4. 每次在部署到设备之前在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);
});

我不确定这将在混合应用程序中完全有效。

但请注意,根据插件页面,此插件需要Android API级别23,该级别仅在最近才添加。 首先请务必升级到MobileFirst Platform Foundation 7.1的最新iFix

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM