Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[NS-Vue] Uncaught exception #52

Closed
MisterBrownRSA opened this issue Sep 10, 2019 · 6 comments
Closed

[NS-Vue] Uncaught exception #52

MisterBrownRSA opened this issue Sep 10, 2019 · 6 comments

Comments

@MisterBrownRSA
Copy link

Hello, I just installed the material textfield component on a brand new installation of Nativescript-vue.

I'm on iOS, trying to get it to work for Android. Haven't tried it for iOS yet.

TNS Version: 6.1.0
TNS Android: 6.0.0

tns-core-modules/package.json

{
  "_from": "tns-core-modules@^6.0.0",
  "_id": "tns-core-modules@6.1.0",
  "_inBundle": false,
  "_integrity": "sha512-dWwmjGmG65uDI76IJS2FmXnuoe6HDCSD+L2LvPyO4TX2R9LftiJMW+81JDhsDStgiFAFevTZgbmMjo5pfNYZog==",
  "_location": "/tns-core-modules",
  "_phantomChildren": {},
  "_requested": {
    "type": "range",
    "registry": true,
    "raw": "tns-core-modules@^6.0.0",
    "name": "tns-core-modules",
    "escapedName": "tns-core-modules",
    "rawSpec": "^6.0.0",
    "saveSpec": null,
    "fetchSpec": "^6.0.0"
  },
  "_requiredBy": [
    "/"
  ],
  "_resolved": "https://registry.npmjs.org/tns-core-modules/-/tns-core-modules-6.1.0.tgz",
  "_shasum": "37e0705fa3460f02e51f92c6f035729992af38dc",
  "_spec": "tns-core-modules@^6.0.0",
  "_where": "/Users/misterbrownza/Documents/mobile/materialtest",
  "bundleDependencies": false,
  "dependencies": {
    "reduce-css-calc": "^2.1.6",
    "tns-core-modules-widgets": "6.1.0",
    "tslib": "^1.9.3"
  },
  "deprecated": false,
  "description": "Telerik NativeScript Core Modules",
  "devDependencies": {
    "@types/node": "~7.0.5",
    "tns-platform-declarations": "next"
  },
  "files": [
    "**/*.d.ts",
    "**/*.js",
    "**/platforms/ios/**",
    "**/package.json",
    "!android17.d.ts",
    "!ios.d.ts",
    "!bin/",
    "!apps/",
    "!build/",
    "!node-tests/",
    "!declarations.android.d.ts",
    "!declarations.ios.d.ts",
    "!gruntfile.js",
    "!org.nativescript.widgets.d.ts"
  ],
  "homepage": "https://www.nativescript.org",
  "license": "Apache-2.0",
  "name": "tns-core-modules",
  "nativescript": {
    "platforms": {
      "ios": "5.0.0",
      "android": "5.0.0"
    }
  },
  "repository": {
    "type": "git",
    "url": "https://github.com/NativeScript/NativeScript/commit/d23ffb8dbfb08815dde083807ba9ece5c2fbf3fb"
  },
  "scripts": {
    "version": "conventional-changelog -p angular -i ../CHANGELOG.md -s && git add ../CHANGELOG.md"
  },
  "snapshot": {
    "android": {
      "tns-java-classes": {
        "modules": [
          "ui/frame/activity",
          "ui/frame/fragment"
        ]
      }
    }
  },
  "typings": "tns-core-modules.d.ts",
  "version": "6.1.0"
}

package.json

{
  "name": "materialtest",
  "version": "1.0.0",
  "description": "A native application built with NativeScript-Vue",
  "author": "Duwayne <duwayne@hashtec.co.za>",
  "license": "MIT",
  "nativescript": {
    "id": "org.nativescript.application",
    "templateVersion": "v2",
    "tns-android": {
      "version": "6.0.0"
    },
    "tns-ios": {
      "version": "6.0.1"
    }
  },
  "dependencies": {
    "@vue/devtools": "^5.0.6",
    "nativescript-material-textfield": "^2.3.23",
    "nativescript-socketio": "^3.2.1",
    "nativescript-toasty": "^1.3.0",
    "nativescript-vue": "^2.4.0",
    "nativescript-vue-devtools": "^1.2.0",
    "tns-core-modules": "^6.0.0"
  },
  "devDependencies": {
    "@babel/core": "^7.0.0",
    "@babel/preset-env": "^7.0.0",
    "babel-loader": "^8.0.2",
    "nativescript-dev-webpack": "^1.0.0",
    "nativescript-vue-template-compiler": "^2.0.0",
    "nativescript-worker-loader": "~0.9.0",
    "node-sass": "^4.9.2",
    "vue-loader": "^15.4.0"
  }
}

I get the following error:

Warning: there already is an extend called org.nativescript.material.TextInputEditText.
Warning: The static binding generator will generate extend from:vendor.js implementation
Exception in thread "main" java.io.IOException: File already exists. This may lead to undesired behavior.
Please change the name of one of the extended classes.
File:/Users/misterbrownza/Documents/mobile/materialtest/platforms/android/app/src/main/java/org/nativescript/material/TextInputEditText.java Clas
s: org.nativescript.material.TextInputEditText
        at org.nativescript.staticbindinggenerator.Generator.writeBindings(Generator.java:112)
        at org.nativescript.staticbindinggenerator.Main.main(Main.java:50)

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:runSbg'.
> Process 'command '/Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home/bin/java'' finished with non-zero exit value 1

* 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 1m 0s
Unable to apply changes on device: emulator-5554. Error is: Command ./gradlew failed with exit code 1.

Steps to reproduce:

  1. Install a new Nativescript-vue project.
  2. add the plugin to the project.
  3. add the import to main.js
  4. add the element
  5. tns run android --bundle
@farfromrefug
Copy link
Member

@MisterBrownRSA please try with cleaning everything. Also please make sure you use the latest nativescript-cli.
That error is mostly due to a config / env state error.

@MisterBrownRSA
Copy link
Author

@farfromrefug I followed This Article to upgrade my nativescript-cli, but still get the same error.

Successfully synced application org.nativescript.application on device emulator-5554.
JS: '{NSVue (Vue: 2.6.10 | NSVue: 2.4.0)} -> CreateElement(NativeFrame)'
JS: '{NSVue (Vue: 2.6.10 | NSVue: 2.4.0)} -> CreateElement(NativePage)'
JS: '{NSVue (Vue: 2.6.10 | NSVue: 2.4.0)} -> CreateElement(NativeActionBar)'
JS: '{NSVue (Vue: 2.6.10 | NSVue: 2.4.0)} -> AppendChild(ElementNode(nativepage), ElementNode(nativeactionbar))'
JS: '{NSVue (Vue: 2.6.10 | NSVue: 2.4.0)} -> CreateElement(nativegridlayout)'
JS: '{NSVue (Vue: 2.6.10 | NSVue: 2.4.0)} -> CreateElement(nativemdtextfield)'
JS: '{NSVue (Vue: 2.6.10 | NSVue: 2.4.0)} -> AppendChild(ElementNode(nativegridlayout), ElementNode(nativemdtextfield))'
JS: '{NSVue (Vue: 2.6.10 | NSVue: 2.4.0)} -> AppendChild(ElementNode(nativepage), ElementNode(nativegridlayout))'
JS: '{NSVue (Vue: 2.6.10 | NSVue: 2.4.0)} -> AppendChild(ElementNode(nativeframe), ElementNode(nativepage))'
System.err: An uncaught Exception occurred on "main" thread.
System.err: Calling js method onCreateView failed
System.err: Error: android.view.InflateException: Binary XML file line #18: Binary XML file line #18: Error inflating class com.google.android.material.textfield.TextInputLayout
System.err: Caused by: android.view.InflateException: Binary XML file line #18: Error inflating class com.google.android.material.textfield.TextInputLayout
System.err: Caused by: java.lang.reflect.InvocationTargetException
System.err:     java.lang.reflect.Constructor.newInstance0(Native Method)
System.err:     java.lang.reflect.Constructor.newInstance(Constructor.java:343)
System.err:     android.view.LayoutInflater.createView(LayoutInflater.java:647)
System.err:     android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:790)
System.err:     android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:730)
System.err:     android.view.LayoutInflater.inflate(LayoutInflater.java:492)
System.err:     android.view.LayoutInflater.inflate(LayoutInflater.java:423)
System.err:     com.tns.Runtime.callJSMethodNative(Native Method)
System.err:     com.tns.Runtime.dispatchCallJSMethodNative(Runtime.java:1209)
System.err:     com.tns.Runtime.callJSMethodImpl(Runtime.java:1096)
System.err:     com.tns.Runtime.callJSMethod(Runtime.java:1083)
System.err:     com.tns.Runtime.callJSMethod(Runtime.java:1063)
System.err:     com.tns.Runtime.callJSMethod(Runtime.java:1055)
System.err:     com.tns.FragmentClass.onCreateView(FragmentClass.java:53)
System.err:     androidx.fragment.app.Fragment.performCreateView(Fragment.java:2612)
System.err:     androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManagerImpl.java:874)
System.err:     androidx.fragment.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManagerImpl.java:1228)
System.err:     androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManagerImpl.java:1293)
System.err:     androidx.fragment.app.BackStackRecord.executeOps(BackStackRecord.java:439)
System.err:     androidx.fragment.app.FragmentManagerImpl.executeOps(FragmentManagerImpl.java:2066)
System.err:     androidx.fragment.app.FragmentManagerImpl.executeOpsTogether(FragmentManagerImpl.java:1856)
System.err:     androidx.fragment.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManagerImpl.java:1811)
System.err:     androidx.fragment.app.FragmentManagerImpl.execPendingActions(FragmentManagerImpl.java:1717)
System.err:     androidx.fragment.app.FragmentManagerImpl$2.run(FragmentManagerImpl.java:150)
System.err:     android.os.Handler.handleCallback(Handler.java:873)
System.err:     android.os.Handler.dispatchMessage(Handler.java:99)
System.err:     android.os.Looper.loop(Looper.java:193)
System.err:     android.app.ActivityThread.main(ActivityThread.java:6669)
System.err:     java.lang.reflect.Method.invoke(Native Method)
System.err:     com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
System.err:     com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
System.err: Caused by: java.lang.IllegalArgumentException: The style on this component requires your app theme to be Theme.MaterialComponents (or a descendant).
System.err:     com.google.android.material.internal.ThemeEnforcement.checkTheme(ThemeEnforcement.java:240)
System.err:     com.google.android.material.internal.ThemeEnforcement.checkMaterialTheme(ThemeEnforcement.java:215)
System.err:     com.google.android.material.internal.ThemeEnforcement.checkCompatibleTheme(ThemeEnforcement.java:143)
System.err:     com.google.android.material.internal.ThemeEnforcement.obtainTintedStyledAttributes(ThemeEnforcement.java:116)
System.err:     com.google.android.material.textfield.TextInputLayout.<init>(TextInputLayout.java:405)
System.err:     com.google.android.material.textfield.TextInputLayout.<init>(TextInputLayout.java:384)
System.err:     java.lang.reflect.Constructor.newInstance0(Native Method)
System.err:     java.lang.reflect.Constructor.newInstance(Constructor.java:343)
System.err:     android.view.LayoutInflater.createView(LayoutInflater.java:647)
System.err:     android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:790)
System.err:     android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:730)
System.err:     android.view.LayoutInflater.inflate(LayoutInflater.java:492)
System.err:     android.view.LayoutInflater.inflate(LayoutInflater.java:423)
System.err:     com.tns.Runtime.callJSMethodNative(Native Method)
System.err:     com.tns.Runtime.dispatchCallJSMethodNative(Runtime.java:1209)
System.err:     com.tns.Runtime.callJSMethodImpl(Runtime.java:1096)
System.err:     com.tns.Runtime.callJSMethod(Runtime.java:1083)
System.err:     com.tns.Runtime.callJSMethod(Runtime.java:1063)
System.err:     com.tns.Runtime.callJSMethod(Runtime.java:1055)
System.err:     com.tns.FragmentClass.onCreateView(FragmentClass.java:53)
System.err:     androidx.fragment.app.Fragment.performCreateView(Fragment.java:2612)
System.err:     androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManagerImpl.java:874)
System.err:     androidx.fragment.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManagerImpl.java:1228)
System.err:     androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManagerImpl.java:1293)
System.err:     androidx.fragment.app.BackStackRecord.executeOps(BackStackRecord.java:439)
System.err:     androidx.fragment.app.FragmentManagerImpl.executeOps(FragmentManagerImpl.java:2066)
System.err:     androidx.fragment.app.FragmentManagerImpl.executeOpsTogether(FragmentManagerImpl.java:1856)
System.err:     androidx.fragment.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManagerImpl.java:1811)
System.err:     androidx.fragment.app.FragmentManagerImpl.execPendingActions(FragmentManagerImpl.java:1717)
System.err:     androidx.fragment.app.FragmentManagerImpl$2.run(FragmentManagerImpl.java:150)
System.err:     android.os.Handler.handleCallback(Handler.java:873)
System.err:     android.os.Handler.dispatchMessage(Handler.java:99)
System.err:     android.os.Looper.loop(Looper.java:193)
System.err:     android.app.ActivityThread.main(ActivityThread.java:6669)
System.err:     java.lang.reflect.Method.invoke(Native Method)
System.err:     com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
System.err:     com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
System.err: 
System.err: StackTrace:
System.err:     TextField.createNativeView(file:///node_modules/nativescript-material-textfield/textfield.js:90:91)
System.err:     at ViewBase._setupUI(file:///node_modules/tns-core-modules/ui/core/view-base/view-base.js:492:30)
System.err:     at (file:///node_modules/tns-core-modules/ui/core/view-base/view-base.js:534:18)
System.err:     at LayoutBaseCommon.eachChildView(file:///node_modules/tns-core-modules/ui/layouts/layout-base-common.js:125:25)
System.err:     at ViewCommon.eachChild(file:///node_modules/tns-core-modules/ui/core/view/view-common.js:1010:13)
System.err:     at ViewBase._setupUI(file:///node_modules/tns-core-modules/ui/core/view-base/view-base.js:533:13)
System.err:     at (file:///node_modules/tns-core-modules/ui/core/view-base/view-base.js:534:18)
System.err:     at ContentView.eachChildView(file:///node_modules/tns-core-modules/ui/content-view/content-view.js:70:12)
System.err:     at PageBase.eachChildView(file:///node_modules/tns-core-modules/ui/page/page-common.js:126:39)
System.err:     at ViewCommon.eachChild(file:///node_modules/tns-core-modules/ui/core/view/view-common.js:1010:13)
System.err:     at ViewBase._setupUI(file:///node_modules/tns-core-modules/ui/core/view-base/view-base.js:533:13)
System.err:     at ViewBase._addViewCore(file:///node_modules/tns-core-modules/ui/core/view-base/view-base.js:432:17)
System.err:     at ViewBase._addView(file:///node_modules/tns-core-modules/ui/core/view-base/view-base.js:421:13)
System.err:     at FragmentCallbacksImplementation.onCreateView(file:///node_modules/tns-core-modules/ui/frame/frame.js:687:18)
System.err:     at FragmentClass.onCreateView(file:///node_modules/tns-core-modules/ui/frame/fragment.js:26:37)
System.err:     at com.tns.Runtime.callJSMethodNative(Native Method)
System.err:     at com.tns.Runtime.dispatchCallJSMethodNative(Runtime.java:1209)
System.err:     at com.tns.Runtime.callJSMethodImpl(Runtime.java:1096)
System.err:     at com.tns.Runtime.callJSMethod(Runtime.java:1083)
System.err:     at com.tns.Runtime.callJSMethod(Runtime.java:1063)
System.err:     at com.tns.Runtime.callJSMethod(Runtime.java:1055)
System.err:     at com.tns.FragmentClass.onCreateView(FragmentClass.java:53)
System.err:     at androidx.fragment.app.Fragment.performCreateView(Fragment.java:2612)
System.err:     at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManagerImpl.java:874)
System.err:     at androidx.fragment.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManagerImpl.java:1228)
System.err:     at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManagerImpl.java:1293)
System.err:     at androidx.fragment.app.BackStackRecord.executeOps(BackStackRecord.java:439)
System.err:     at androidx.fragment.app.FragmentManagerImpl.executeOps(FragmentManagerImpl.java:2066)
System.err:     at androidx.fragment.app.FragmentManagerImpl.executeOpsTogether(FragmentManagerImpl.java:1856)
System.err:     at androidx.fragment.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManagerImpl.java:1811)
System.err:     at androidx.fragment.app.FragmentManagerImpl.execPendingActions(FragmentManagerImpl.java:1717)
System.err:     at androidx.fragment.app.FragmentManagerImpl$2.run(FragmentManagerImpl.java:150)
System.err:     at android.os.Handler.handleCallback(Handler.java:873)
System.err:     at android.os.Handler.dispatchMessage(Handler.java:99)
System.err:     at android.os.Looper.loop(Looper.java:193)
System.err:     at android.app.ActivityThread.main(ActivityThread.java:6669)
System.err:     at java.lang.reflect.Method.invoke(Native Method)
System.err:     at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
System.err:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
System.err: Caused by: android.view.InflateException: Binary XML file line #18: Binary XML file line #18: Error inflating class com.google.android.material.textfield.TextInputLayout
System.err: Caused by: android.view.InflateException: Binary XML file line #18: Error inflating class com.google.android.material.textfield.TextInputLayout
System.err: Caused by: java.lang.reflect.InvocationTargetException
System.err:     at java.lang.reflect.Constructor.newInstance0(Native Method)
System.err:     at java.lang.reflect.Constructor.newInstance(Constructor.java:343)
System.err:     at android.view.LayoutInflater.createView(LayoutInflater.java:647)
System.err:     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:790)
System.err:     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:730)
System.err:     at android.view.LayoutInflater.inflate(LayoutInflater.java:492)
System.err:     at android.view.LayoutInflater.inflate(LayoutInflater.java:423)
System.err:     at com.tns.Runtime.callJSMethodNative(Native Method)
System.err:     at com.tns.Runtime.dispatchCallJSMethodNative(Runtime.java:1209)
System.err:     at com.tns.Runtime.callJSMethodImpl(Runtime.java:1096)
System.err:     at com.tns.Runtime.callJSMethod(Runtime.java:1083)
System.err:     at com.tns.Runtime.callJSMethod(Runtime.java:1063)
System.err:     at com.tns.Runtime.callJSMethod(Runtime.java:1055)
System.err:     at com.tns.FragmentClass.onCreateView(FragmentClass.java:53)
System.err:     at androidx.fragment.app.Fragment.performCreateView(Fragment.java:2612)
System.err:     at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManagerImpl.java:874)
System.err:     at androidx.fragment.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManagerImpl.java:1228)
System.err:     at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManagerImpl.java:1293)
System.err:     at androidx.fragment.app.BackStackRecord.executeOps(BackStackRecord.java:439)
System.err:     at androidx.fragment.app.FragmentManagerImpl.executeOps(FragmentManagerImpl.java:2066)
System.err:     at androidx.fragment.app.FragmentManagerImpl.executeOpsTogether(FragmentManagerImpl.java:1856)
System.err:     at androidx.fragment.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManagerImpl.java:1811)
System.err:     at androidx.fragment.app.FragmentManagerImpl.execPendingActions(FragmentManagerImpl.java:1717)
System.err:     at androidx.fragment.app.FragmentManagerImpl$2.run(FragmentManagerImpl.java:150)
System.err:     at android.os.Handler.handleCallback(Handler.java:873)
System.err:     at android.os.Handler.dispatchMessage(Handler.java:99)
System.err:     at android.os.Looper.loop(Looper.java:193)
System.err:     at android.app.ActivityThread.main(ActivityThread.java:6669)
System.err:     at java.lang.reflect.Method.invoke(Native Method)
System.err:     at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:493)
System.err:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:858)
System.err: Caused by: java.lang.IllegalArgumentException: The style on this component requires your app theme to be Theme.MaterialComponents (or a descendant).
System.err:     at com.google.android.material.internal.ThemeEnforcement.checkTheme(ThemeEnforcement.java:240)
System.err:     at com.google.android.material.internal.ThemeEnforcement.checkMaterialTheme(ThemeEnforcement.java:215)
System.err:     at com.google.android.material.internal.ThemeEnforcement.checkCompatibleTheme(ThemeEnforcement.java:143)
System.err:     at com.google.android.material.internal.ThemeEnforcement.obtainTintedStyledAttributes(ThemeEnforcement.java:116)
System.err:     at com.google.android.material.textfield.TextInputLayout.<init>(TextInputLayout.java:405)
System.err:     at com.google.android.material.textfield.TextInputLayout.<init>(TextInputLayout.java:384)
System.err:     ... 31 more

@farfromrefug
Copy link
Member

@MisterBrownRSA This is your real error:

System.err: Caused by: java.lang.IllegalArgumentException: The style on this component requires your app theme to be Theme.MaterialComponents (or a descendant).

You need to update your style.xml file to use Theme.MaterialComponents as explained

@MisterBrownRSA
Copy link
Author

@farfromrefug I'm not finding where it's explained? I'm using nativescript-vue which means we mostly use styles.scss, would you mind guiding me in the right direction ?

@farfromrefug
Copy link
Member

@MisterBrownRSA I meant explained by the Logcat. This is an android error. You must be using a styles.xml in App_resources/Android/src/main/res/values. This is this file you need to update. Replace all Theme.Appcompat with Theme.MaterialComponents

@farfromrefug
Copy link
Member

@MisterBrownRSA can we close this?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants