[javac] java.lang.IllegalArgumentException: Cannot convert Java type 'AndroidViewComponent' to Yail type

I was making an extension, everything worked out fine, but......
This error comes only, and no other error comes:

error: cannot find symbol
[javac] public void HighlightText(String regexPattern, int color, AndroidViewComponent component){
[javac] ^

I am trying to getView of textView from AndroidViewComponent
but, the error above is shown while compiling.

Full Log:

Started Compiling Project SyntaxHighlighter
Buildfile: /compiler/android/build.xml

javac:
[mkdir] Created dir: /compiler/android/build/rEORk/classes
[javac] Compiling 1 source file to /compiler/android/build/rEORk/classes
[javac] warning: [options] bootstrap class path not set in conjunction with -source 1.7
[javac] /compiler/android/src/rEORk/com/puterblade/syntaxhighlighter/SyntaxHighlighter.java:38: error: cannot find symbol
[javac] public void HighlightText(String regexPattern, int color, AndroidViewComponent component){
[javac] ^
[javac] symbol: class AndroidViewComponent
[javac] location: class SyntaxHighlighter
[javac]
[javac]
[javac] An annotation processor threw an uncaught exception.
[javac] Consult the following stack trace for details.
[javac] java.lang.IllegalArgumentException: Cannot convert Java type 'AndroidViewComponent' to Yail type
[javac] at com.google.appinventor.components.scripts.ComponentProcessor.javaTypeToYailType(ComponentProcessor.java:2056)
[javac] at com.google.appinventor.components.scripts.ComponentDescriptorGenerator.outputParameters(ComponentDescriptorGenerator.java:367)
[javac] at com.google.appinventor.components.scripts.ComponentDescriptorGenerator.outputBlockMethod(ComponentDescriptorGenerator.java:346)
[javac] at com.google.appinventor.components.scripts.ComponentDescriptorGenerator.outputComponent(ComponentDescriptorGenerator.java:157)
[javac] at com.google.appinventor.components.scripts.ComponentDescriptorGenerator.outputResults(ComponentDescriptorGenerator.java:385)
[javac] at com.google.appinventor.components.scripts.ComponentProcessor.process(ComponentProcessor.java:1091)
[javac] at com.sun.tools.javac.processing.JavacProcessingEnvironment.callProcessor(JavacProcessingEnvironment.java:802)
[javac] at com.sun.tools.javac.processing.JavacProcessingEnvironment.discoverAndRunProcs(JavacProcessingEnvironment.java:713)
[javac] at com.sun.tools.javac.processing.JavacProcessingEnvironment.access$1800(JavacProcessingEnvironment.java:91)
[javac] at com.sun.tools.javac.processing.JavacProcessingEnvironment$Round.run(JavacProcessingEnvironment.java:1043)
[javac] at com.sun.tools.javac.processing.JavacProcessingEnvironment.doProcessing(JavacProcessingEnvironment.java:1184)
[javac] at com.sun.tools.javac.main.JavaCompiler.processAnnotations(JavaCompiler.java:1170)
[javac] at com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:856)
[javac] at com.sun.tools.javac.main.Main.compile(Main.java:523)
[javac] at com.sun.tools.javac.main.Main.compile(Main.java:381)
[javac] at com.sun.tools.javac.main.Main.compile(Main.java:370)
[javac] at com.sun.tools.javac.main.Main.compile(Main.java:361)
[javac] at com.sun.tools.javac.Main.compile(Main.java:56)
[javac] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[javac] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
[javac] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[javac] at java.lang.reflect.Method.invoke(Method.java:498)
[javac] at org.apache.tools.ant.taskdefs.compilers.Javac13.execute(Javac13.java:57)
[javac] at org.apache.tools.ant.taskdefs.Javac.compile(Javac.java:1388)
[javac] at org.apache.tools.ant.taskdefs.Javac.execute(Javac.java:1117)
[javac] at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292)
[javac] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[javac] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
[javac] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
[javac] at java.lang.reflect.Method.invoke(Method.java:498)
[javac] at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:99)
[javac] at org.apache.tools.ant.Task.perform(Task.java:350)
[javac] at org.apache.tools.ant.Target.execute(Target.java:449)
[javac] at org.apache.tools.ant.Target.performTasks(Target.java:470)
[javac] at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1391)
[javac] at org.apache.tools.ant.Project.executeTarget(Project.java:1364)
[javac] at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
[javac] at org.apache.tools.ant.Project.executeTargets(Project.java:1254)
[javac] at org.apache.tools.ant.Main.runBuild(Main.java:830)
[javac] at org.apache.tools.ant.Main.startAnt(Main.java:223)
[javac] at org.apache.tools.ant.launch.Launcher.run(Launcher.java:284)
[javac] at org.apache.tools.ant.launch.Launcher.main(Launcher.java:101)

I searched a lot, but couldn't find something that worked here...
Why this error is coming? :thinking: Any ideas?

Have you import AndroidViewComponent?

And where are you compiling your extension? Tempelate? or Rush?

I imported android.view.View; only........
I searched the internet and not fully sure how to import AndroidViewComponent....

is it like this?

import android.view.ViewComponent

(i could be very wrong)
If wrong, please tell me how do I import viewComponent.

I am using Niotron IDE to compile my extension

You'd better to use some powerful IDE for coding, like Android Studio, VSCODE, Eclipse

I will change my IDE soon,
but how to fix that issue?

import com.google.appinventor.components.runtime.AndroidViewComponent;

1 Like

Would be helpful if you show the full relevant code.

And your IDE may be not support use AndroidViewComponent as the type of parameter, try Component instead.

1 Like

I have fixed the androidViewComponent issue
thank you kevinkun

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.