31
31
import processing .app .Sketch ;
32
32
import processing .app .SketchException ;
33
33
import processing .app .Util ;
34
+ import processing .app .exec .LineProcessor ;
34
35
import processing .app .exec .ProcessHelper ;
35
36
import processing .app .exec .ProcessResult ;
37
+ import processing .app .exec .StreamPump ;
36
38
import processing .core .PApplet ;
37
39
import processing .mode .java .JavaBuild ;
38
40
import processing .mode .java .preproc .SurfaceInfo ;
@@ -787,9 +789,16 @@ private File signPackage(File projectFolder, String keyStorePassword) throws Exc
787
789
private File zipalignPackage (File signedPackage , File projectFolder )
788
790
throws IOException , InterruptedException {
789
791
790
- File buildToolsFolder = new File (sdk .getSdkFolder (), "build-tools" ).listFiles ()[0 ];
792
+ File buildToolsFolder = new File (sdk .getSdkFolder (), "build-tools" ).listFiles ()[0 ];
791
793
String zipalignPath = buildToolsFolder .getAbsolutePath () + "/zipalign" ;
792
-
794
+ if (Platform .isWindows ()) zipalignPath += ".exe" ;
795
+ if (!new File (zipalignPath ).exists ()) {
796
+ Messages .showWarning ("Cannot find zipaling..." ,
797
+ "The zipalign build tool needed to prepare the export pacakge is missing.\n " +
798
+ "Make sure that your Android SDK was downloaded correctly." );
799
+ return null ;
800
+ }
801
+
793
802
File alignedPackage = new File (projectFolder ,
794
803
module + "/build/outputs/apk/" + sketch .getName ().toLowerCase () + "_release_signed_aligned.apk" );
795
804
@@ -800,6 +809,12 @@ private File zipalignPackage(File signedPackage, File projectFolder)
800
809
801
810
Process alignProcess = Runtime .getRuntime ().exec (args );
802
811
alignProcess .waitFor ();
812
+ StreamPump errie = new StreamPump (alignProcess .getErrorStream (), "zipalign err: " );
813
+ errie .addTarget (new LineProcessor () {
814
+ public void processLine (String line ) {
815
+ System .err .println (line );
816
+ }
817
+ });
803
818
804
819
if (alignedPackage .exists ()) return alignedPackage ;
805
820
return null ;
0 commit comments