Can't Build for android

Windows 10
Fuse 0.27 & 0.28

I’m trying to build for android, and I get this no matter what build command I use (UNLESS I build non-release):

Ali@AliPC MINGW64 ~/Desktop/App/Workout App BB (master)
$ fuse build --target=Android --configuration=Release -v                        Uno 0.39.1 (build 3969) Windows 10 x64 3f290d3

Configuring
Project file: Shape.unoproj
Search paths: C:\Users\Ali\AppData\Local\Fusetools\Fuse\App\Packages, C:\Users\Ali\AppData\Local\Fusetools\Fuse\App\app-0.28.0.8142\Packages, C:\ProgramData\Uno\Packages, C:\Users\Ali\AppData\Local\Fusetools\Fuse\App\lib
Packages:     UnoCore (0.39.1), Fuse.Designer (0.39.2), Uno.Collections (0.39.1), Uno.Geometry (0.39.1), Uno.Net.Sockets (0.39.1), Uno.Threading (0.39.1), FuseCore (0.39.2), Fuse.Motion (0.39.2), Fuse.Animations (0.39.2), Fuse.Drawing (0.39.2), Uno.Net.Http (0.39.1), Experimental.Http (0.39.2), Experimental.TextureLoader (0.39.1), Fuse.Drawing.Planar (0.39.2), Fuse.Scripting (0.39.2), Fuse.Triggers (0.39.2), Fuse.Elements (0.39.2), Fuse.Controls.Native (0.39.2), Fuse.Drawing.Batching (0.39.2), Fuse.Drawing.Meshes (0.39.2), Fuse.Drawing.Primitives (0.39.2), Fuse.Drawing.Polygons (0.39.2), Fuse.Drawing.Paths (0.39.2), Fuse.Entities (0.39.2), Fuse.Gestures (0.39.2), Uno.Data.Json (0.39.1), Fuse.Navigation (0.39.2), Fuse.Scripting.Duktape (0.39.2), Fuse.Scripting.JavaScriptCore (0.39.2), Fuse.Scripting.Jurassic (0.39.2), Fuse.Scripting.V8 (0.39.2), Uno.Testing (0.39.1), Fuse.Reactive (0.39.2), Fuse.Controls (0.39.2), Fuse.Controls.Panels (0.39.2), Fuse.Effects (0.39.2), Fuse.Controls.Primitives (0.39.2), Fuse.Controls.ScrollView (0.39.2), Fuse.Android (0.39.2), Fuse.Controls.Navigation (0.39.2), Fuse.Controls.Video (0.39.2), Fuse.iOS (0.39.2), Fuse.Controls.WebView (0.39.2), Fuse.Desktop (0.39.2), Fuse.FileSystem (0.39.2), Fuse.Physics (0.39.2), Fuse.Selection (0.39.2), Fuse.Storage (0.39.2), Fuse.UserEvents (0.39.2), Uno.Data.Xml (0.39.1), Fuse (0.39.2), Fuse.Platform (0.39.2), Polyfills.Window (0.39.2), FuseJS (0.39.2), Uno.Permissions (0.39.1), Fuse.Vibration (0.39.2), Fuse.Launcher (0.39.2), Fuse.LocalNotifications (0.39.2), Fuse.BasicTheme (0.39.2), Android.ActivityUtils (0.39.1), Fuse.ImageTools (0.39.2), Fuse.Camera (0.39.2), Fuse.CameraRoll (0.39.2), Shape (0.0.0)
Output dir:   build\Android\Release
(2,947.59 ms)

Compiling syntax tree (3,913.04 ms)
Generating code and data
* 47 namespaces stripped.
* 686 types stripped.
* 1512 fields stripped.
* 7559 functions stripped.
* 677 classes sealed.
* 1409 functions sealed.
* 58 functions stripped from vtable.
(unknown): W0000: 'SplitAndJoin()' is deprecated -- replace with 'Join()'
(27,539.73 ms)

Building Android app
1/2: libShape.so


2/2: Shape.apk
Buildfile: C:\Users\Ali\Desktop\App\Workout App BB\build\Android\Release\Shape\app\src\main\build.xml

-set-mode-check:

-set-release-mode:

-release-obfuscation-check:
     [echo] proguard.config is ${proguard.config}

-pre-build:

-check-env:
 [checkenv] Android SDK Tools Revision 24.0.2
 [checkenv] Installed at C:\ProgramData\Uno\SDKs\AndroidSDK

-setup:
     [echo] Project Name: Shape
  [gettype] Project Type: Application

-build-setup:
[getbuildtools] Using latest Build Tools: 23.0.1
     [echo] Resolving Build Target for Shape...
[gettarget] Project Target:   Android 6.0
[gettarget] API level:        23
     [echo] ----------
     [echo] Creating output directories if needed...
    [mkdir] Created dir: C:\Users\Ali\Desktop\App\Workout App BB\build\Android\Release\Shape\app\src\main\bin\rsObj
    [mkdir] Created dir: C:\Users\Ali\Desktop\App\Workout App BB\build\Android\Release\Shape\app\src\main\bin\rsLibs
     [echo] ----------
     [echo] Resolving Dependencies for Shape...
[dependency] Library dependencies:
[dependency] No Libraries
[dependency]
[dependency] ------------------
     [echo] ----------
     [echo] Building Libraries with 'release'...
   [subant] No sub-builds to iterate on

-code-gen:
[mergemanifest] Found Deleted Target File
[mergemanifest] Merging AndroidManifest files into one.
[mergemanifest] Manifest merger disabled. Using project manifest only.
     [echo] Handling aidl files...
     [aidl] No AIDL files to compile.
     [echo] ----------
     [echo] Handling RenderScript files...
     [echo] ----------
     [echo] Handling Resources...
     [aapt] Found Deleted Target File
     [aapt] Generating resource IDs...
     [echo] ----------
     [echo] Handling BuildConfig class...
[buildconfig] Generating BuildConfig class.

-pre-compile:

-compile:
    [javac] Compiling 2 source files to C:\Users\Ali\Desktop\App\Workout App BB\build\Android\Release\Shape\app\src\main\bin\classes
    [javac] warning: [options] source value 1.5 is obsolete and will be removed in a future release
    [javac] warning: [options] target value 1.5 is obsolete and will be removed in a future release
    [javac] warning: [options] To suppress warnings about obsolete options, use -Xlint:-options.
    [javac] 3 warnings

-post-compile:

-obfuscate:

-dex:
      [dex] input: C:\Users\Ali\Desktop\App\Workout App BB\build\Android\Release\Shape\app\src\main\bin\classes
      [dex] input: C:\Users\Ali\Desktop\App\Workout App BB\build\Android\Release\Shape\app\src\main\libs\android-support-v4.jar
      [dex] Using Pre-Dexed android-support-v4-0d736ebfd17b9a7ec23cbc14647c7ff7.jar <- C:\Users\Ali\Desktop\App\Workout App BB\build\Android\Release\Shape\app\src\main\libs\android-support-v4.jar
      [dex] Found Deleted Target File
      [dex] Converting compiled files and external libraries into C:\Users\Ali\Desktop\App\Workout App BB\build\Android\Release\Shape\app\src\main\bin\classes.dex...
       [dx] Merged dex A (175 defs/175.9KiB) with dex B (1153 defs/1127.0KiB). Result is 1328 defs/1595.0KiB. Took 0.7s

-crunch:
   [crunch] Crunching PNG Files in source dir: C:\Users\Ali\Desktop\App\Workout App BB\build\Android\Release\Shape\app\src\main\res
   [crunch] To destination dir: C:\Users\Ali\Desktop\App\Workout App BB\build\Android\Release\Shape\app\src\main\bin\res
   [crunch] Crunched 0 PNG files to update cache

-package-resources:
     [aapt] Creating full resource package...

-package:
[apkbuilder] Current build type is different than previous build: forced apkbuilder run.
[apkbuilder] Creating Shape-release-unsigned.apk for release...

-post-package:

-release-prompt-for-password:

-release-nosign:

-release-sign:
     [echo] Signing final apk...

BUILD FAILED
C:\ProgramData\Uno\SDKs\AndroidSDK\tools\ant\build.xml:1139: The following error occurred while executing this line:
C:\ProgramData\Uno\SDKs\AndroidSDK\tools\ant\build.xml:1151: Signing key Shape not found

Total time: 13 seconds
(unknown): E0200: Android build failed
(15,541.29 ms)

Build completed in 49.98 seconds
    1 warning
    1 error

fuse: Errors were encountered while building the project

Also here’s the unoproj:

{
  "Title": "Shape",
  "Name": "Shape",
  "Version": "0.1.0",
  "RootNamespace": "com.nintysevenshapes.shape",
  "Packages": [
    "Fuse",
    "FuseJS",
    "Fuse.Scripting",
    "Fuse.Vibration",
    "Fuse.Launcher",
    "Fuse.LocalNotifications",
    "Fuse.BasicTheme",
    "Fuse.Camera",
    "Fuse.CameraRoll",
    "Fuse.UserEvents",
    "Fuse.Launcher"
  ],
  "Includes": [
    "*",
    "moment.js:Bundle",
    "workout.json:Bundle",
    "startData.json:Bundle",
    "*.js:Bundle",
    "Pages/*.ux:Bundle"
  ],
  "Mobile": {
    "Orientations": "Portrait"
  },
  "Android": {
    "Package": "com.nintysevenshapes.shape",
    "Icons": {
      "LDPI": "Assets/icons/android/mipmap-ldpi/ic_launcher.png",
      "MDPI": "Assets/icons/android/mipmap-mdpi/ic_launcher.png",
      "HDPI": "Assets/icons/android/mipmap-hdpi/ic_launcher.png",
      "XHDPI": "Assets/icons/android/mipmap-xhdpi/ic_launcher.png",
      "XXHDPI": "Assets/icons/android/mipmap-xxhdpi/ic_launcher.png",
      "XXXHDPI": "Assets/icons/android/mipmap-xxxhdpi/ic_launcher.png"
    },
    "Key": {
      "Alias": "xxxxx",
      "AliasPassword": "xxxxxxxxx",
      "Store": "release.keystore",
      "StorePassword": "xxxxxxxxx"
    }
  }
}

The passwords match those on the release.keystore.

Hi Fudge,

This one is new to me. This bit is odd though

[apkbuilder] Creating Shape-release-unsigned.apk for release..```

Could you try running `uno clean` in that directory and then running `fuse build --target=Android --configuration=Release -v` again?

thanks

Yeah same deal. And the debug build is fine. As long as I try to sign it, it goes wrong. Do you need the project?

That would be great

Thank you baggers for fixing the problem. The problem was that my .unoproj's Key looked like this:

"Key": {
      "Alias": "appName",
      "AliasPassword": "somePassword",
      "Store": "release.keystore",
      "StorePassword": "somePassword"
    }

when it should be:

"Key": {
      "Alias": "application",
      "AliasPassword": "somePassword",
      "Store": "release.keystore",
      "StorePassword": "somePassword"
    }

Alias must be set to application when you generate your keystore using: keytool -genkey -v -keystore release.keystore -alias application -keyalg RSA -keysize 2048 -validity 10000

No probs :slight_smile:

Turns out this was not fixed, removing space for folder name and fixing signing issue now leaves:

BUILD SUCCESSFUL
 
Total time: 4 mins 22.791 secs
Shape.apk: E0000: Could not find file 'Shape/app/build/outputs/apk/app-arm7-release.apk'.
---
(exit code: 1)
(unknown): E0200: Android build failed
(265,653.52 ms)
 
Build completed in 285.78 seconds
    1 warning
    1 error

The full log is here, it’s a large log so it’s on pastebin: http://pastebin.com/46nLHd2W

Hi, we can reproduce this on windows now. Working on a fix

Hi again. It turns out that on windows the build.gradle file needed an extra line. We will get a fix out in the next release.

In the meantime you can do the following:

  • open the build/Android/Release/Shape/app/build.gradle file
  • find the section that looks like this:
    android.buildTypes {
        release {
            minifyEnabled = false
            proguardFiles.add(file('proguard-rules.txt'))
        }
    }
  • Add a line so it looks like this
    android.buildTypes {
        release {
            minifyEnabled = false
            proguardFiles.add(file('proguard-rules.txt'))
            signingConfig = $("android.signingConfigs.release")
        }
    }
  • run the build/Android/Release/build.sh file

You should now get a signed apk

Thank you for a quick reply and a quick-fix until the next update. The app is now pending approval! Thanks to everyone who helped out.