martinkasa / capacitor-secure-storage-plugin

Capacitor plugin for storing string values securly on iOS and Android.
MIT License
153 stars 55 forks source link

[BUG] When opening the app it crashes after installing the plugin. #17

Closed Drvanon closed 4 years ago

Drvanon commented 4 years ago

Reproduction:

Error:

2020-04-10 11:16:35.673 4524-4524/? I/o.ionic.starte: Late-enabling -Xcheck:jni
2020-04-10 11:16:35.793 4524-4556/io.ionic.starter I/o.ionic.starte: The ClassLoaderContext is a special shared library.
2020-04-10 11:16:36.008 4524-4524/io.ionic.starter I/Perf: Connecting to perf service.
2020-04-10 11:16:36.022 4524-4524/io.ionic.starter W/FirebaseApp: Default FirebaseApp failed to initialize because no default options were found. This usually means that com.google.gms:google-services was not applied to your gradle project.
2020-04-10 11:16:36.022 4524-4524/io.ionic.starter I/FirebaseInitProvider: FirebaseApp initialization unsuccessful
2020-04-10 11:16:36.097 4524-4524/io.ionic.starter W/o.ionic.starte: Accessing hidden method Landroid/graphics/drawable/Drawable;->getOpticalInsets()Landroid/graphics/Insets; (light greylist, linking)
2020-04-10 11:16:36.097 4524-4524/io.ionic.starter W/o.ionic.starte: Accessing hidden field Landroid/graphics/Insets;->left:I (light greylist, linking)
2020-04-10 11:16:36.097 4524-4524/io.ionic.starter W/o.ionic.starte: Accessing hidden field Landroid/graphics/Insets;->right:I (light greylist, linking)
2020-04-10 11:16:36.097 4524-4524/io.ionic.starter W/o.ionic.starte: Accessing hidden field Landroid/graphics/Insets;->top:I (light greylist, linking)
2020-04-10 11:16:36.097 4524-4524/io.ionic.starter W/o.ionic.starte: Accessing hidden field Landroid/graphics/Insets;->bottom:I (light greylist, linking)
2020-04-10 11:16:36.105 4524-4524/io.ionic.starter E/o.ionic.starte: Invalid ID 0x00000000.
2020-04-10 11:16:36.158 4524-4524/io.ionic.starter W/o.ionic.starte: Accessing hidden method Landroid/view/View;->getAccessibilityDelegate()Landroid/view/View$AccessibilityDelegate; (light greylist, linking)
2020-04-10 11:16:36.166 4524-4524/io.ionic.starter W/o.ionic.starte: Accessing hidden method Landroid/view/View;->computeFitSystemWindows(Landroid/graphics/Rect;Landroid/graphics/Rect;)Z (light greylist, reflection)
2020-04-10 11:16:36.167 4524-4524/io.ionic.starter W/o.ionic.starte: Accessing hidden method Landroid/view/ViewGroup;->makeOptionalFitsSystemWindows()V (light greylist, reflection)
2020-04-10 11:16:36.171 4524-4524/io.ionic.starter D/AndroidRuntime: Shutting down VM
2020-04-10 11:16:36.176 4524-4524/io.ionic.starter E/AndroidRuntime: FATAL EXCEPTION: main
    Process: io.ionic.starter, PID: 4524
    java.lang.RuntimeException: Unable to start activity ComponentInfo{io.ionic.starter/io.ionic.starter.MainActivity}: android.view.InflateException: Binary XML file line #2: Binary XML file line #2: Error inflating class android.support.design.widget.CoordinatorLayout
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3047)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3182)
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1916)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:193)
        at android.app.ActivityThread.main(ActivityThread.java:6898)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:537)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
     Caused by: android.view.InflateException: Binary XML file line #2: Binary XML file line #2: Error inflating class android.support.design.widget.CoordinatorLayout
     Caused by: android.view.InflateException: Binary XML file line #2: Error inflating class android.support.design.widget.CoordinatorLayout
     Caused by: java.lang.ClassNotFoundException: Didn't find class "android.support.design.widget.CoordinatorLayout" on path: DexPathList[[zip file "/data/app/io.ionic.starter-HL1m187oOUhYQheeuueT3A==/base.apk"],nativeLibraryDirectories=[/data/app/io.ionic.starter-HL1m187oOUhYQheeuueT3A==/lib/arm64, /system/lib64]]
        at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:134)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
        at android.view.LayoutInflater.createView(LayoutInflater.java:606)
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:790)
        at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:730)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:423)
        at android.view.LayoutInflater.inflate(LayoutInflater.java:374)
        at androidx.appcompat.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:555)
        at androidx.appcompat.app.AppCompatActivity.setContentView(AppCompatActivity.java:161)
        at com.getcapacitor.BridgeActivity.init(BridgeActivity.java:56)
        at io.ionic.starter.MainActivity.onCreate(MainActivity.java:18)
        at android.app.Activity.performCreate(Activity.java:7149)
        at android.app.Activity.performCreate(Activity.java:7140)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1288)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3027)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3182)
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:78)
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:108)
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:68)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1916)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:193)
        at android.app.ActivityThread.main(ActivityThread.java:6898)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:537)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
2020-04-10 11:16:36.201 4524-4612/? D/OSTracker: OS Event: crash
2020-04-10 11:16:36.222 4524-4612/? D/AbstractTracker: Event success
2020-04-10 11:16:36.223 4524-4524/? I/Process: Sending signal. PID: 4524 SIG: 9
darkedges commented 4 years ago

Created a fix for Ionic 5 framework, but unsure how to make it work for old and new version at the moment.

To get the fix for your local environment

git clone https://github.com/darkedges/capacitor-secure-storage-plugin.git
cd capacitor-secure-storage-plugin
npm run build
npm link

go to your project and issue

npm link capacitor-secure-storage-plugin

or edit package.json and change the value of capacitor-secure-storage-plugin to

    "capacitor-secure-storage-plugin": "file:../capacitor-secure-storage-plugin"

Change to where you cloned the repository.

do an npx cap sync and then reload your app in the studio.

martinkasa commented 4 years ago

Thank you for PR. I have created new version v0.4.0 based on Capacitor v2 plugin template, so for capacitor >=2 use version v0.4.0, for Capacitor <2 use 0.3.2.