Why won't asdoc generate?

420 views Asked by At

I'm trying to generate an asdoc right now. The project is two classes. One class extends View and another is a custom Event class. Really, really simple. I cannot, for the life of me, get the asdoc to properly generate. I've tried so many different commands, I've forgotten what I've actually tried and haven't.

Every time I compile, I get the following output:

/Users/jjanusch/dev/workspaces/AIR/library/src/com/vuria/ui/views/PanelViewBase.as(41): col: 37 Error: The definition of base class View was not found.

    public class PanelViewBase extends View
                                       ^

/Users/jjanusch/dev/workspaces/AIR/library/src/com/vuria/ui/views/PanelViewBase.as(204): col: 31 Error: Method marked override must override another method.

        override protected function createChildren():void {
                                    ^

/Users/jjanusch/dev/workspaces/AIR/library/src/com/vuria/ui/views/PanelViewBase.as(246): col: 32 Error: Method marked override must override another method.

        override public function set navigationContent(value:Array):void {
                                     ^

/Users/jjanusch/dev/workspaces/AIR/library/src/com/vuria/ui/views/PanelViewBase.as(262): col: 32 Error: Method marked override must override another method.

        override public function set actionContent(value:Array):void {
                                     ^

/Users/jjanusch/dev/workspaces/AIR/library/src/com/vuria/ui/views/PanelViewBase.as(279): col: 31 Error: Method marked override must override another method.

        override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void {
                                    ^

Here is the bash script I am using

#!/bin/bash
docSource="/Users/jjanusch/dev/workspaces/AIR/library/src"
docOut="/Users/jjanusch/dev/workspaces/AIR/library/documentation"
libraryPath="/Applications/Adobe Flash Builder 4.7/sdks/4.11 AIR 3.9/frameworks/libs"
packageDescriptions="/Users/jjanusch/dev/workspaces/AIR/library/asdocs-package-descriptions.xml"

"$asdoc" \
    -doc-sources "$docSource" \
    -output "$docOut" \
    -lenient \
    -compiler.library-path "$libraryPath" \
    -package-description-file "$packageDescriptions" \
    -keep-xml=true \
    -skip-xsl=true

There are plenty of Flex classes involved in the PanelViewBase class, but the only mobile component is View. I've been unable to find any similar issues where a mobile class can't be documented. Does anyone have any idea why this won't work? I've also tried manually including each swc as a library

EDIT: Worth noting that this is Flex 4.11 and AIR 3.9. Additionally, Grant Skinner's Asdocr app also fails with the same error.

Here are the imports from that class as well, just for good measure:

import com.vuria.events.ViewEvent;

import flash.events.MouseEvent;

import mx.core.UIComponent;
import mx.graphics.SolidColor;

import spark.components.Button;
import spark.components.Group;
import spark.components.View;
import spark.primitives.Rect;
import spark.primitives.RectangularDropShadow;
2

There are 2 answers

0
Clintm On

add the compiler arg +configname=airmobile and add the mobile theme swc to the library path. -library-path+=${flexlib}/themes/Mobile/mobile.swc

0
divillysausages On

I was trying to use asdoc to generate Starling docs, with no joy, and came back across this question.

I was getting "Incorrect number of arguments" on a requestContext3D() call (i.e. basic Flash, like asdoc isn't using the right Flex/AIR version to generate).

Following the http://help.adobe.com/en_US/flex/using/WSd0ded3821e0d52fe1e63e3d11c2f44bc36-7ffa.html and linked http://help.adobe.com/en_US/flex/using/WS2db454920e96a9e51e63e3d11c0bf69084-7a92.html, there's a better explanation of the properties.

What worked for me (either/or):

  • Adding the -strict=false
  • Specifying the target player, which would in turn link it against the proper playerglobal.swc: -target-player=12.0

A thing which really helped me was dumping the default config, so I could see all the default values for asdoc. You can do this via:

asdoc -dump-config config.xml

Looking through this file, I found:

<target-player>11.1</target-player>

So it was linking for Flash player 11.1, before the second parameter of the requestContext3D was added, hence my error.

In your case, I also saw that the default framework is set to halo, not spark, so changing it would probably help