NiklasMerz / cordova-plugin-fingerprint-aio

Cordova Plugin for fingerprint sensors (and FaceID) with Android and iOS support
https://www.npmjs.com/package/cordova-plugin-fingerprint-aio
MIT License
319 stars 189 forks source link

Manifest merger failed #255

Open udaychy opened 4 years ago

udaychy commented 4 years ago

Bug report

Description

When I try to build the project, I am getting "Manifest merger failed" error. Below are some more details:

Execution failed for task ':app:processReleaseManifest'. Manifest merger failed : Attribute application@appComponentFactory value=(android.support.v4.app.CoreComponentFactory) from [com.android.support:support-compat:28.0.0] AndroidManifest.xml:22:18-91 is also present at [androidx.core:core:1.0.0] AndroidManifest.xml:22:18-86 value=(androidx.core.app.CoreComponentFactory). Suggestion: add 'tools:replace="android:appComponentFactory"' to <application> element at AndroidManifest.xml:5:5-15:19 to override.

As per the suggestion, I changed the AndroidManifest.xml file and also added android.useAndroidX=true android.enableJetifier=true in gradle.properties file but then I started getting "Compilation failed" errors

Execution failed for task ':app:compileReleaseJavaWithJavac'. Compilation failed; see the compiler error output for details..

All the errors are in biometric\BiometricActivity.java file. Below are the complete log.

> Transform material.aar (com.google.android.material:material:1.0.0) with AarTransform
> Task :app:processReleaseGoogleServices UP-TO-DATE
> Transform android-biometric.aar (com.github.exxbrain:android-biometric:0.4) with AarTransform
> Task :app:createReleaseCompatibleScreenManifests UP-TO-DATE
> Task :app:processReleaseManifest
> Task :app:mergeReleaseResources UP-TO-DATE
> Task :app:processReleaseResources

D:\MyApp\platforms\android\app\src\main\java\com\ionicframework\cordova\webview\IonicWebViewEngine.java:11: error: package android.support.annotation does not exist
import android.support.annotation.RequiresApi;
                                 ^
D:\MyApp\platforms\android\app\src\main\java\de\niklasmerz\cordova\biometric\BiometricActivity.java:10: error: package android.support.annotation does not exist
import android.support.annotation.NonNull;
                                 ^
D:\MyApp\platforms\android\app\src\main\java\de\niklasmerz\cordova\biometric\BiometricActivity.java:11: error: package android.support.annotation does not exist
import android.support.annotation.Nullable;
                                 ^
D:\MyApp\platforms\android\app\src\main\java\de\niklasmerz\cordova\biometric\BiometricActivity.java:12: error: package android.support.v4.content does not exist
import android.support.v4.content.ContextCompat;
                                 ^
D:\MyApp\platforms\android\app\src\main\java\de\niklasmerz\cordova\biometric\BiometricActivity.java:13: error: package android.support.v7.app does not exist
import android.support.v7.app.AppCompatActivity;
                             ^
D:\MyApp\platforms\android\app\src\main\java\de\niklasmerz\cordova\biometric\BiometricActivity.java:19: error: cannot find symbol
public class BiometricActivity extends AppCompatActivity {
                                       ^
  symbol: class AppCompatActivity
D:\MyApp\platforms\android\app\src\main\java\com\ionicframework\cordova\webview\IonicWebViewEngine.java:121: error: cannot find symbol
    @RequiresApi(Build.VERSION_CODES.LOLLIPOP)
     ^
  symbol:   class RequiresApi
  location: class IonicWebViewEngine.ServerClient
D:\MyApp\platforms\android\app\src\main\java\de\niklasmerz\cordova\biometric\BiometricActivity.java:25: error: cannot find symbol
    protected void onCreate(@Nullable Bundle savedInstanceState) {
                             ^
  symbol:   class Nullable
  location: class BiometricActivity
D:\MyApp\platforms\android\app\src\main\java\de\niklasmerz\cordova\biometric\BiometricActivity.java:116: error: cannot find symbol
    private void onError(int errorCode, @NonNull CharSequence errString) {
                                         ^
  symbol:   class NonNull
  location: class BiometricActivity
D:\MyApp\platforms\android\app\src\main\java\de\niklasmerz\cordova\biometric\BiometricActivity.java:24: error: method does not override or implement a method from a supertype
    @Override
    ^
D:\MyApp\platforms\android\app\src\main\java\de\niklasmerz\cordova\biometric\BiometricActivity.java:26: error: cannot find symbol
        super.onCreate(savedInstanceState);
        ^
  symbol:   variable super
  location: class BiometricActivity
D:\MyApp\platforms\android\app\src\main\java\de\niklasmerz\cordova\biometric\BiometricActivity.java:28: error: cannot find symbol
        setTitle(null);
        ^
  symbol:   method setTitle()
  location: class BiometricActivity
D:\MyApp\platforms\android\app\src\main\java\de\niklasmerz\cordova\biometric\BiometricActivity.java:30: error: cannot find symbol
                .getIdentifier("biometric_activity", "layout", getPackageName());
                                                               ^
  symbol:   method getPackageName()
  location: class BiometricActivity
D:\MyApp\platforms\android\app\src\main\java\de\niklasmerz\cordova\biometric\BiometricActivity.java:29: error: cannot find symbol
        int layout = getResources()
                     ^
  symbol:   method getResources()
  location: class BiometricActivity
D:\MyApp\platforms\android\app\src\main\java\de\niklasmerz\cordova\biometric\BiometricActivity.java:31: error: cannot find symbol
        setContentView(layout);
        ^
  symbol:   method setContentView(int)
  location: class BiometricActivity
D:\MyApp\platforms\android\app\src\main\java\de\niklasmerz\cordova\biometric\BiometricActivity.java:37: error: cannot find symbol
        mPromptInfo = new PromptInfo.Builder(getIntent().getExtras()).build();
                                             ^
  symbol:   method getIntent()
  location: class BiometricActivity
D:\MyApp\platforms\android\app\src\main\java\de\niklasmerz\cordova\biometric\BiometricActivity.java:47: error: no suitable constructor found for BiometricPrompt(BiometricActivity,Executor,AuthenticationCallback)
                new BiometricPrompt(this, executor, mAuthenticationCallback);
                ^
    constructor BiometricPrompt.BiometricPrompt(FragmentActivity,Executor,AuthenticationCallback) is not applicable
      (argument mismatch; BiometricActivity cannot be converted to FragmentActivity)
    constructor BiometricPrompt.BiometricPrompt(Fragment,Executor,AuthenticationCallback) is not applicable
      (argument mismatch; BiometricActivity cannot be converted to Fragment)
D:\MyApp\platforms\android\app\src\main\java\de\niklasmerz\cordova\biometric\BiometricActivity.java:68: error: cannot find symbol
                public void onAuthenticationError(int errorCode, @NonNull CharSequence errString) {
                                                                  ^
  symbol: class NonNull
D:\MyApp\platforms\android\app\src\main\java\de\niklasmerz\cordova\biometric\BiometricActivity.java:74: error: cannot find symbol
                public void onAuthenticationSucceeded(@NonNull BiometricPrompt.AuthenticationResult result) {
                                                       ^
  symbol: class NonNull
D:\MyApp\platforms\android\app\src\main\java\de\niklasmerz\cordova\biometric\BiometricActivity.java:88: error: cannot find symbol
        KeyguardManager keyguardManager = ContextCompat
                                          ^
  symbol:   variable ContextCompat
  location: class BiometricActivity
D:\MyApp\platforms\android\app\src\main\java\de\niklasmerz\cordova\biometric\BiometricActivity.java:97: error: cannot find symbol
            this.startActivityForResult(intent, REQUEST_CODE_CONFIRM_DEVICE_CREDENTIALS);
                ^
  symbol: method startActivityForResult(Intent,int)
D:\MyApp\platforms\android\app\src\main\java\de\niklasmerz\cordova\biometric\BiometricActivity.java:105: error: method does not override or implement a method from a supertype
    @Override
    ^
D:\MyApp\platforms\android\app\src\main\java\de\niklasmerz\cordova\biometric\BiometricActivity.java:144: error: cannot find symbol
        setResult(RESULT_OK);
                  ^
  symbol:   variable RESULT_OK
  location: class BiometricActivity
D:\MyApp\platforms\android\app\src\main\java\de\niklasmerz\cordova\biometric\BiometricActivity.java:145: error: cannot find symbol
        finish();
        ^
  symbol:   method finish()
  location: class BiometricActivity
D:\MyApp\platforms\android\app\src\main\java\de\niklasmerz\cordova\biometric\BiometricActivity.java:156: error: cannot find symbol
        setResult(RESULT_CANCELED, data);
                  ^
  symbol:   variable RESULT_CANCELED
  location: class BiometricActivity
D:\MyApp\platforms\android\app\src\main\java\de\niklasmerz\cordova\biometric\BiometricActivity.java:157: error: cannot find symbol
        finish();
        ^
  symbol:   method finish()
  location: class BiometricActivity
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
26 errors

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:compileReleaseJavaWithJavac'.
> Compilation failed; see the compiler error output for details.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 4s
> Task :app:compileReleaseJavaWithJavac FAILED
26 actionable tasks: 4 executed, 22 up-to-date
D:\MyApp\platforms\android\gradlew: Command failed with exit code 1 Error output:
D:\MyApp\platforms\android\app\src\main\java\com\ionicframework\cordova\webview\IonicWebViewEngine.java:11: error: package android.support.annotation does not exist
import android.support.annotation.RequiresApi;
                                 ^
D:\MyApp\platforms\android\app\src\main\java\de\niklasmerz\cordova\biometric\BiometricActivity.java:10: error: package android.support.annotation does not exist
import android.support.annotation.NonNull;
                                 ^
D:\MyApp\platforms\android\app\src\main\java\de\niklasmerz\cordova\biometric\BiometricActivity.java:11: error: package android.support.annotation does not exist
import android.support.annotation.Nullable;
                                 ^
D:\MyApp\platforms\android\app\src\main\java\de\niklasmerz\cordova\biometric\BiometricActivity.java:12: error: package android.support.v4.content does not exist
import android.support.v4.content.ContextCompat;
                                 ^
D:\MyApp\platforms\android\app\src\main\java\de\niklasmerz\cordova\biometric\BiometricActivity.java:13: error: package android.support.v7.app does not exist
import android.support.v7.app.AppCompatActivity;
                             ^
D:\MyApp\platforms\android\app\src\main\java\de\niklasmerz\cordova\biometric\BiometricActivity.java:19: error: cannot find symbol
public class BiometricActivity extends AppCompatActivity {
                                       ^
  symbol: class AppCompatActivity
D:\MyApp\platforms\android\app\src\main\java\com\ionicframework\cordova\webview\IonicWebViewEngine.java:121: error: cannot find symbol
    @RequiresApi(Build.VERSION_CODES.LOLLIPOP)
     ^
  symbol:   class RequiresApi
  location: class IonicWebViewEngine.ServerClient
D:\MyApp\platforms\android\app\src\main\java\de\niklasmerz\cordova\biometric\BiometricActivity.java:25: error: cannot find symbol
    protected void onCreate(@Nullable Bundle savedInstanceState) {
                             ^
  symbol:   class Nullable
  location: class BiometricActivity
D:\MyApp\platforms\android\app\src\main\java\de\niklasmerz\cordova\biometric\BiometricActivity.java:116: error: cannot find symbol
    private void onError(int errorCode, @NonNull CharSequence errString) {
                                         ^
  symbol:   class NonNull
  location: class BiometricActivity
D:\MyApp\platforms\android\app\src\main\java\de\niklasmerz\cordova\biometric\BiometricActivity.java:24: error: method does not override or implement a method from a supertype
    @Override
    ^
D:\MyApp\platforms\android\app\src\main\java\de\niklasmerz\cordova\biometric\BiometricActivity.java:26: error: cannot find symbol
        super.onCreate(savedInstanceState);
        ^
  symbol:   variable super
  location: class BiometricActivity
D:\MyApp\platforms\android\app\src\main\java\de\niklasmerz\cordova\biometric\BiometricActivity.java:28: error: cannot find symbol
        setTitle(null);
        ^
  symbol:   method setTitle()
  location: class BiometricActivity
D:\MyApp\platforms\android\app\src\main\java\de\niklasmerz\cordova\biometric\BiometricActivity.java:30: error: cannot find symbol
                .getIdentifier("biometric_activity", "layout", getPackageName());
                                                               ^
  symbol:   method getPackageName()
  location: class BiometricActivity
D:\MyApp\platforms\android\app\src\main\java\de\niklasmerz\cordova\biometric\BiometricActivity.java:29: error: cannot find symbol
        int layout = getResources()
                     ^
  symbol:   method getResources()
  location: class BiometricActivity
D:\MyApp\platforms\android\app\src\main\java\de\niklasmerz\cordova\biometric\BiometricActivity.java:31: error: cannot find symbol
        setContentView(layout);
        ^
  symbol:   method setContentView(int)
  location: class BiometricActivity
D:\MyApp\platforms\android\app\src\main\java\de\niklasmerz\cordova\biometric\BiometricActivity.java:37: error: cannot find symbol
        mPromptInfo = new PromptInfo.Builder(getIntent().getExtras()).build();
                                             ^
  symbol:   method getIntent()
  location: class BiometricActivity
D:\MyApp\platforms\android\app\src\main\java\de\niklasmerz\cordova\biometric\BiometricActivity.java:47: error: no suitable constructor found for BiometricPrompt(BiometricActivity,Executor,AuthenticationCallback)
                new BiometricPrompt(this, executor, mAuthenticationCallback);
                ^
    constructor BiometricPrompt.BiometricPrompt(FragmentActivity,Executor,AuthenticationCallback) is not applicable
      (argument mismatch; BiometricActivity cannot be converted to FragmentActivity)
    constructor BiometricPrompt.BiometricPrompt(Fragment,Executor,AuthenticationCallback) is not applicable
      (argument mismatch; BiometricActivity cannot be converted to Fragment)
D:\MyApp\platforms\android\app\src\main\java\de\niklasmerz\cordova\biometric\BiometricActivity.java:68: error: cannot find symbol
                public void onAuthenticationError(int errorCode, @NonNull CharSequence errString) {
                                                                  ^
  symbol: class NonNull
D:\MyApp\platforms\android\app\src\main\java\de\niklasmerz\cordova\biometric\BiometricActivity.java:74: error: cannot find symbol
                public void onAuthenticationSucceeded(@NonNull BiometricPrompt.AuthenticationResult result) {
                                                       ^
  symbol: class NonNull
D:\MyApp\platforms\android\app\src\main\java\de\niklasmerz\cordova\biometric\BiometricActivity.java:88: error: cannot find symbol
        KeyguardManager keyguardManager = ContextCompat
                                          ^
  symbol:   variable ContextCompat
  location: class BiometricActivity
D:\MyApp\platforms\android\app\src\main\java\de\niklasmerz\cordova\biometric\BiometricActivity.java:97: error: cannot find symbol
            this.startActivityForResult(intent, REQUEST_CODE_CONFIRM_DEVICE_CREDENTIALS);
                ^
  symbol: method startActivityForResult(Intent,int)
D:\MyApp\platforms\android\app\src\main\java\de\niklasmerz\cordova\biometric\BiometricActivity.java:105: error: method does not override or implement a method from a supertype
    @Override
    ^
D:\MyApp\platforms\android\app\src\main\java\de\niklasmerz\cordova\biometric\BiometricActivity.java:144: error: cannot find symbol
        setResult(RESULT_OK);
                  ^
  symbol:   variable RESULT_OK
  location: class BiometricActivity
D:\MyApp\platforms\android\app\src\main\java\de\niklasmerz\cordova\biometric\BiometricActivity.java:145: error: cannot find symbol
        finish();
        ^
  symbol:   method finish()
  location: class BiometricActivity
D:\MyApp\platforms\android\app\src\main\java\de\niklasmerz\cordova\biometric\BiometricActivity.java:156: error: cannot find symbol
        setResult(RESULT_CANCELED, data);
                  ^
  symbol:   variable RESULT_CANCELED
  location: class BiometricActivity
D:\MyApp\platforms\android\app\src\main\java\de\niklasmerz\cordova\biometric\BiometricActivity.java:157: error: cannot find symbol
        finish();
        ^
  symbol:   method finish()
  location: class BiometricActivity
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
26 errors

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:compileReleaseJavaWithJavac'.
> Compilation failed; see the compiler error output for details.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org

BUILD FAILED in 4s

Environment

Ionic info

Ionic:

   Ionic CLI          : 5.2.5 (C:\Users\usr\AppData\Roaming\npm\node_modules\ionic)
   Ionic Framework    : ionic-angular 3.9.5
   @ionic/app-scripts : 3.2.2

Cordova:

   Cordova CLI       : 9.0.0 (cordova-lib@9.0.1)
   Cordova Platforms : android 8.1.0, ios 5.1.1
   Cordova Plugins   : cordova-plugin-ionic-keyboard 2.1.3, cordova-plugin-ionic-webview 4.1.1, (and 15 other plugins)

Utility:

   cordova-res : 0.8.0 (update available: 0.9.0)
   native-run  : 0.3.0

System:

   Android SDK Tools : 26.1.1 (C:\Users\usr\AppData\Local\Android\Sdk)
   NodeJS            : v10.16.3 (C:\Program Files\nodejs\node.exe)
   npm               : 6.9.0
   OS                : Windows 8.1

Plugins

"plugins": {
      "cordova-sqlite-storage": {},
      "cordova-plugin-whitelist": {},
      "cordova-plugin-statusbar": {},
      "cordova-plugin-device": {},
      "cordova-plugin-splashscreen": {},
      "cordova-plugin-ionic-webview": {
        "ANDROID_SUPPORT_ANNOTATIONS_VERSION": "27.+"
      },
      "cordova-plugin-ionic-keyboard": {},
      "cordova-plugin-inappbrowser": {},
      "cordova-plugin-network-information": {},
      "cordova-support-google-services": {},
      "cordova-plugin-firebase-analytics": {
        "FIREBASE_ANALYTICS_COLLECTION_ENABLED": "true",
        "FIREBASE_ANALYTICS_VERSION": "17.4.+"
      },
      "cordova-plugin-firebase-crash": {
        "FIREBASE_CRASHLYTICS_COLLECTION_ENABLED": "true"
      },
      "cordova-plugin-app-version": {},
      "cordova-plugin-market": {},
      "cordova-plugin-fingerprint-aio": {
        "FACEID_USAGE_DESCRIPTION": " "
      }
    }
meowlanguages commented 4 years ago

Same here


BUILD FAILED in 1s
/home/usera/Documents/project/app/cordova/platforms/android/gradlew: Command failed with exit code 1 Error output:
/home/usera/Documents/project/app/cordova/platforms/android/app/src/main/AndroidManifest.xml:22:18-91 Error:
    Attribute application@appComponentFactory value=(android.support.v4.app.CoreComponentFactory) from [com.android.support:support-compat:28.0.0] AndroidManifest.xml:22:18-91
    is also present at [androidx.core:core:1.0.0] AndroidManifest.xml:22:18-86 value=(androidx.core.app.CoreComponentFactory).
    Suggestion: add 'tools:replace="android:appComponentFactory"' to <application> element at AndroidManifest.xml:5:5-21:19 to override.

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:processDebugManifest'.
> Manifest merger failed : Attribute application@appComponentFactory value=(android.support.v4.app.CoreComponentFactory) from [com.android.support:support-compat:28.0.0] AndroidManifest.xml:22:18-91
    is also present at [androidx.core:core:1.0.0] AndroidManifest.xml:22:18-86 value=(androidx.core.app.CoreComponentFactory).
    Suggestion: add 'tools:replace="android:appComponentFactory"' to <application> element at AndroidManifest.xml:5:5-21:19 to override.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Get more help at https://help.gradle.org
yogeshezest commented 3 years ago

Same issue with Capacitor ..any updates?