Android release build failed

Hi there,

I’m keep getting an error when building for Android. The preview works fine. I’ve also tried the pre-release version. Anyone know why this gives an error?

Fuse version: 0.31.2 (build 9180)

OS: Windows 10

Command: fuse build --target=Android --configuration=Release

unoproj:

{
  "Title": "30Sec",
  "RootNamespace": "30Sec",
  "Packages": [
    "Fuse",
    "FuseJS"
  ],
  "Includes": [
    "./*.ux",
    "./*.uno",
    "./*.uxl"
  ],
  "Projects": [
  ],
  "Excludes": [
  ],
  "Version": "0.0.1",
  "Mobile": {
    "KeepAlive": true,
    "ShowStatusbar": false,
    "Orientations": "Landscape"
  }
}

Console output:

E:\Projecten\30seconds\30Seconds>fuse build --target=Android --configuration=Release
Uno 0.42.5 (build 4233) Windows 10 x64 056334a
Configuring
Target is up-to-date -- stopping build (pass --force to override)
Building Android app
1/2: lib_30Seconds.so
2/2: 30Seconds.apk
[javac] E:\Projecten\30seconds\30Seconds\build\Android\Release\30Seconds\app\src\main\gen\nl\toinevos\30sec\BuildConfig.java:2: error: ';' expected
[javac] E:\Projecten\30seconds\30Seconds\build\Android\Release\30Seconds\app\src\main\gen\nl\toinevos\30sec\R.java:8: error: ';' expected
BUILD FAILED
C:\Users\toine\AppData\Local\Fusetools\Fuse\Android\AndroidSDK\tools\ant\build.xml:720: The following error occurred while executing this line:
C:\Users\toine\AppData\Local\Fusetools\Fuse\Android\AndroidSDK\tools\ant\build.xml:734: Compile failed; see the compiler error output for details.
Total time: 1 second
## 1/2: lib_30Seconds.so
## 2/2: 30Seconds.apk
Buildfile: E:\Projecten\30seconds\30Seconds\build\Android\Release\30Seconds\app\src\main\build.xml
-set-mode-check:
(unknown): E0200: Android build failed
-set-debug-files:
-check-env:
 [checkenv] Android SDK Tools Revision 24.0.2
 [checkenv] Installed at C:\Users\toine\AppData\Local\Fusetools\Fuse\Android\AndroidSDK
-setup:
     [echo] Project Name: 30Seconds
  [gettype] Project Type: Application
-set-debug-mode:
-debug-obfuscation-check:
-pre-build:
-build-setup:
[getbuildtools] Using latest Build Tools: 23.0.1
     [echo] Resolving Build Target for 30Seconds...
[gettarget] Project Target:   Android 6.0
[gettarget] API level:        23
     [echo] ----------
     [echo] Creating output directories if needed...
    [mkdir] Created dir: E:\Projecten\30seconds\30Seconds\build\Android\Release\30Seconds\app\src\main\bin\rsObj
    [mkdir] Created dir: E:\Projecten\30seconds\30Seconds\build\Android\Release\30Seconds\app\src\main\bin\rsLibs
     [echo] ----------
     [echo] Resolving Dependencies for 30Seconds...
[dependency] Library dependencies:
[dependency] No Libraries
[dependency]
[dependency] ------------------
     [echo] ----------
     [echo] Building Libraries with 'debug'...
   [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 102 source files to E:\Projecten\30seconds\30Seconds\build\Android\Release\30Seconds\app\src\main\bin\classes
    [javac] E:\Projecten\30seconds\30Seconds\build\Android\Release\30Seconds\app\src\main\gen\nl\toinevos\30sec\BuildConfig.java:2: error: ';' expected
    [javac] package nl.toinevos.30sec;
    [javac]                    ^
    [javac] E:\Projecten\30seconds\30Seconds\build\Android\Release\30Seconds\app\src\main\gen\nl\toinevos\30sec\R.java:8: error: ';' expected
    [javac] package nl.toinevos.30sec;
    [javac]                    ^
    [javac] 2 errors
(3.0 s)
Build completed in 3.28 seconds
    1 error
fuse: Errors were encountered while building the project

From here https://docs.oracle.com/javase/tutorial/java/package/namingpkgs.html I’m seeing this:

In some cases, the internet domain name may not be a valid package name. This can occur if the domain name contains a hyphen or other special character, if the package name begins with a digit or other character that is illegal to use as the beginning of a Java name

So it looks like 30seconds won’t be able to be used as a project name. I’ll file an issue for us to do a better job of catching these kinds of things but for now I would use the unoproj file to pick something that doesnt start with a number.

The build now completes for release and debug. But, when I want to install the APK files on my phone I see the message “There is a problem parsing the package”.

I’ve got a Nexus 5X ANdroid 7.1.1

I’ve created a new project “ThirtySeconds” instead of “30Seconds”. Copy-past all the ux and assets into the new project and the app works.

Could the problem have something to do with the name of the app? Can’t the name start with a numbers?

Given android’s package name restrictions I think that is very likely. I’ll dig into it a bit and see what I find