Air Applikation und flashlog.txt

Friday, June 24. 2011

Unter XP war das alles gar kein Thema, die installierte Air Appl. schrieb ihre Traces in die Datei flashlog.txt und gut. Aber auf Linux? Denn natürlich trat der Fehler, den ich suchte, nur auf, wenn die Anwendung unter Linux lief...

Ich dachte zunächst, dass auch für AIR der installierte flashplayer entscheidend sei (und für Linux 64 baut Adobe keinen debug-flashplayer). Aber in einer vm mit Mint/32, debug-flashplayer, korrekter mm.cfg und allem blieb die Air trotzdem stumm.

Etwas Suchen musste ich schon bis ich hier den entscheidenden Hinweis fand: 
cd /opt/$applName/share/META-INF/AIR
touch debug

(Für $applName natürlich den Namen der jwlg. Applikation einsetzen...) Die Appl. neu starten und nun schreibt sie ihre traces brav nach ~/.macromedia/Flash_Player/Logs/flashlog.txt

An GoogleEarth habe ich so viele male rumgedoktert, und immer nur ein schwarzer Block da, wo die Erdkugel sein sollte. Für eine Weile hatte ich mich schon damit abgefunden, dafür eine dedizierte vm mit xp zu nehmen. Aber beim Schatzsuchen braucht man GE nun mal dauernd und als ich dann ein .deb für 64bit entdeckte, habe ich mich noch einmal darangemacht. Download, sudo dpkg -i google-earth-stable_current_amd64.deb und:?? Schwarzer Bildschirm.

Ok, also auf die Suche gemacht. Es finden sich viele Hinweise, dass lsb-core und lib32nss-mdns und ia32-libs-gtk installiert sein müssen. Sind es auch, trotzdem schwarz. Dann ein Hinweis auf sudo aptitude install nvidia-glx-ia32 - und heureka, endlich gehts.

Fein. Wäre es eigentlich zu viel verlangt, wenn Google's .deb solche Abhängigkeit prüft oder wenigstens einen Hinweis auf bekannte Problemquellen gibt? Die sind ja nun kein Fischgeschäft. Grummel.

SWF - Tools

Wednesday, June 15. 2011

command line tools to create, modify, concatenate, analyse .swf - files

Libraries for creating SWF Files mit einer Liste von alternativen, überwiegend aber nicht alle Open source.

Ein wenig docu zu swfMill auf osflash.org. MTASC. Eine BlogSeite mit einem simplen Beispiel, für mich war's genau das richtige Ding, um mit meinen eigenen Sachen an den Start zu kommen.

Wiki und Beispielanwendungen der SWFTools,  

Mit Flex 3 eine air app als Installationspaket packen geht ja erstmal ganz leicht, Project/export release build  und der wizzard macht es. Anschliessend sind (appName).swf und (appName)-app.xml in der .air, die letztlich auch nur ein .zip mit kleinen Extras ist.
Hakelig wurde es mir erst, als ich zu diesen beiden noch weitere Dateien  (und Verzeichnissbäme) zufuegen wollte.

Relevante Einträge im properties-wizzard sind 'Flex Compiler / Compuiler options: Copy non embedded files to output folder ' und dann im export release build - wizzard die letze Seite, wo man zu integrierende Ressourcen auswählen kann. Wenn sie denn gelistet werden. Was dort gelistet wird, gilt. Die Regeln dafür, was dort gelistet wird, sind nicht eben intuitiv. 

Basis dessen ist der Ordner (projektOrdner)/bin-release. Was man vor einem release build in einen solchen Ordner kopiert oder linkt, wird im dann erzeugten .air enthalten sein.
Problem gelöst - nur leider: als naechstes wird der ganze Folder bin-release gelöscht und neu aufgebaut, mit dem Minimal-'Content  (appName).swf und (appName)-app.xml . Alles, was man da gesammelt hat, ist weg, und wenn man (wie hier, mit unterliegendem ext-Dateisystem) die Inhalte des bin-release per symLink eingestellt hat, ist auch gleich noch die Quelle des Links gelöscht. Einfach super. Alle Versuche, per Ownership oder Permissions oder HardLink oder was dies Löschen zu verhindern, führen zu bitterlichen Message-Boxen und sonst nirgendwohin.

bin-release ist hier also ein - mittelfristig gesehen - dynamisches Verzeichnis und definitiv nicht der Ort, um irgendwas wichtiges abzulegen / anzusiedeln. Es gibt ein best practice / howto von adobe, das ernstlich empfiehlt, bei jedem release-build die Dateien/Ordner hier neu einzukopieren. Ja danke, man nennt sowas glaub' ich Sollbruchstelle. Oder broken design, oder so...
Faktisch ist die Quelle für den Aufbau des dynamisch erzeugten bin-release der Inhalt des src/, aber...:

  • Verzeichnisse oder Verzeichnisbäume, die nicht wenigstens eine 'akzeptable' Datei enthalten, werden ignoriert
  • *.as und *.mxml sind *nicht akzeptabel*
  • wenn man also, wie ich, die Sache mit einem 'leeren' Verzeichnisbaum und einem Verzeichnis mit zwei .as testet, sieht man nichts.

Entfernt in dem Zusammenhang: Ein Blog - Labor zu headless building on Linux

In einem früheren Eintrag hatte ich ja mal über die Mühen der Installation von Adobe Air unter 64 Bit Linux geschrieben, irgendwie habe ich es dann doch hinbekommen. Ich arbeite derzeit selbst an eine air app und brauchte es. Ok, mein debian squeeze kde 4.4.5 listet mir nun unter K / utilities den Ad. Air Installer, mit dem ich mir ein *.air package installieren kann. Läuft, wunderbar, beim naechsten Versiönchen will ich den neuen Stand installieren: geht nicht, eine app dieses Namens sei schon vorhanden. Mh, das lässt sich ändern, kurz mal auf /opt/ und da steht die App, F8 und weg ist sie. - Von wegen!

Der Installer rödelt jetzt eine Weile und meldet dann, es habe ein Problem gegeben, sowas wie Fehler 1, und ich solle doch mal den Autor der Appp fragen. Fein! Wer immer sich solche Texte ausgedacht hat, in meinen Augen hat er sich eine rekursive Bastonade verdient. Wenn man sich schon die Mühe einer Messagebox macht, warum kann da dann nicht etwas stehen wie " schauen sie doch mal in $LogDatei, wo wir die richtige Fehlermeldung für sie versteckt haben"

 cat ~/.appdata/Adobe/AIR/Logs/Install.log  in meinem Falle, und dort findet sich dann auch der Text zur Fehlernummer: 
error 1  error: dpkg: Fehler beim Bearbeiten von /tmp/FlashTmp.xme90K/setup.deb (--install):; Versuch, »/opt/airBase/share/mimetype« zu überschreiben, welches auch in Paket  airbase.6eb066ed6af4d1c4f05c36654e32b365cae9a188.1 v1 ist;

Aha, deshalb das anfängliche Rödeln: der Air Installer hat das .air in ein .deb umverpackt und an dpkg übergeben. 
dpkg -l|grep airbase (der momentane Arbeitstitel meines vorhabens) zeigt mir das installierte app,
dpkg -r PAKETNAME
macht es weg und dann tut auch der Installer wieder.

Nun, es geht auch mit Software-Center/Installierte Anwendungen und jemand hat sogar einen speziellen Uninstaller for Adobe AIR geschrieben.

(Page 1 of 2, totaling 7 entries) » next page