Unfortunately, there is no workaround for 0.8.0. Even if we try to use -js-output-type instead, it tries to call a constructor that simply doesn't exist anymore. We didn't get compiler errors to tell us that this had broken because it it used reflection to find that constructor.
- Josh On Jul 6, 2017 1:47 PM, "Alex Harui" <aha...@adobe.com.invalid> wrote: > Thanks for noticing that. So does that mean a workaround for 0.8.0 is to > define in additional compiler options: > > -js-output-type=FLEXJS > > -Alex > > On 7/6/17, 11:46 AM, "Josh Tynjala" <joshtynj...@gmail.com> wrote: > > >Okay, I made a commit that seems to get things working in IntelliJ IDEA > >again. It looks like MxmlJSC and CompJSC in flex-compiler-oem.jar no > >longer > >need to create the backend manually, and MXMLJSC or COMPJSC can figure out > >what to do automatically based on the value of -targets now. > > > >I was able to successfully build some projects in IntelliJ with -targets > >set to JSFlex, SWF, and also JS. > > > >- Josh > > > >On Thu, Jul 6, 2017 at 11:21 AM, Josh Tynjala <joshtynj...@gmail.com> > >wrote: > > > >> The problem looks to be related to this line: > >> > >> compiler = COMPILER.getDeclaredConstructor(IBackend.class).newInstance( > >> backend); > >> > >> It's looking for a constructor on MXMLJSC (not to be confused with > >> MxmlJSC) that takes an IBackend as a parameter. There is no longer a > >> constructor like that in 0.8.0. If I understand the dual changes > >>correctly, > >> MXMLJSC now automatically creates an IBackend based on the -targets > >>value. > >> It looks like this code does indeed still need changes to support dual. > >> > >> - Josh > >> > >> > >> On Wed, Jul 5, 2017 at 3:09 PM, Josh Tynjala <joshtynj...@gmail.com> > >> wrote: > >> > >>> I'm trying to create a new FlexJS 0.8.0 project in IntelliJ IDEA, and > >>>I'm > >>> getting the following output when I try to build the project: > >>> > >>> Information:[HelloIDEA]: Starting Flex compiler: > >>> "/Applications/IntelliJ > >>>IDEA.app/Contents/jdk/Contents/Home/jre/bin/java" > >>> > >>>-Dapplication.home=/Users/joshtynjala/Development/Flex/ > sdks/flexjs-0.8.0 > >>> -Dfile.encoding=UTF-8 -Djava.awt.headless=true -Duser.language=en > >>> -Duser.region=en -Xmx512m -classpath "/Applications/IntelliJ > >>> > >>>IDEA.app/Contents/plugins/flex/lib/idea-flex-compiler- > fix.jar:/Applicati > >>>ons/IntelliJ > >>> IDEA.app/Contents/plugins/flex/lib/flex-compiler.jar:/Users/ > >>> > >>>joshtynjala/Development/Flex/sdks/flexjs-0.8.0/lib/ > flex-compiler-oem.jar > >>>" > >>> com.intellij.flex.compiler.FlexCompiler 54900 > >>> Information:[HelloIDEA]: mxmlc -load-config=/Users/joshtynjal > >>> a/Library/Caches/IntelliJIdea2017.1/compile-server/ > >>> helloidea_6d5abd99/_temp_/IntelliJ_IDEA/idea-B028A5AE-12E86E20.xml > >>> -load-config+=/Users/joshtynjala/Development/Flex/sdks/ > >>> flexjs-0.8.0/ide/IDEA/intellij-config.xml > >>> Information:[HelloIDEA]: unknown error > >>> Information:[HelloIDEA]: at java.lang.Class.getConstructor > >>> 0(Class.java:3082) > >>> Information:[HelloIDEA]: at java.lang.Class.getDeclaredCon > >>> structor(Class.java:2178) > >>> Information:[HelloIDEA]: at flex2.tools.MxmlJSC.getCompile > >>> rInstance(MxmlJSC.java:48) > >>> Information:[HelloIDEA]: at > >>>flex2.tools.MxmlJSC.execute(MxmlJSC.java:89) > >>> Information:[HelloIDEA]: at flex2.tools.Tool.compile(Tool.java:68) > >>> Information:[HelloIDEA]: at flex2.tools.Mxmlc.mxmlc(Mxmlc.java:73) > >>> Information:[HelloIDEA]: at com.intellij.flex.compiler.fle > >>> x4.Flex4Handler.compileSwf(Flex4Handler.java:81) > >>> Information:[HelloIDEA]: at com.intellij.flex.compiler.Com > >>> pilationThread.run(CompilationThread.java:48) > >>> Information:[HelloIDEA]: Compilation failed > >>> Information:7/5/17, 2:56 PM - Compilation completed with 1 error and 0 > >>> warnings in 595ms > >>> Error:[HelloIDEA]: java.lang.NoSuchMethodException: > >>> org.apache.flex.compiler.clients.MXMLJSC.<init>(org.apache. > >>> flex.compiler.driver.IBackend) > >>> > >>> I followed the steps in these instructions that worked correctly with > >>> 0.7.0: > >>> > >>> > >>>https://na01.safelinks.protection.outlook.com/?url= > https%3A%2F%2Fcwiki.a > >>>pache.org%2Fconfluence%2Fdisplay%2FFLEX%2FUsing% > 2BFlexJ&data=02%7C01%7C% > >>>7C0db52a1b085d40a0d99008d4c49f7cf7%7Cfa7b1b5a7b34438794aed2c178de > cee1%7C > >>>0%7C0%7C636349636715390181&sdata=SMfsugjsJKZI9AKay2Dn0qhk7srWdH > %2BkTtrlo > >>>GXiw34%3D&reserved=0 > >>> S+with+IntelliJ+IDEA > >>> > >>> I'm not very familiar with this part of the code, but it looks to me > >>>like > >>> the call to MxmlJSC.getCompilerInstance() can't find IBackend? Could > >>>it be > >>> that flex-compiler-oem.jar is missing something in its classpath? > >>> > >>> - Josh > >>> > >> > >> > >