Titanium JIRA Archive
Titanium SDK/CLI (TIMOB)

[TIMOB-23967] Android: appc run based module builds fail due to double-namespaced classes in KrollGeneratedBindings.gperf

GitHub Issuen/a
TypeBug
PriorityCritical
StatusClosed
ResolutionFixed
Resolution Date2016-10-28T15:03:20.000+0000
Affected Version/sRelease 6.0.0
Fix Version/sRelease 6.0.0
ComponentsAndroid, CLI
Labelsn/a
ReporterChristopher Williams
AssigneeGary Mathews
Created2016-09-29T15:12:12.000+0000
Updated2017-03-13T15:17:08.000+0000

Description

I know we'd like to make the full cut over to using the node-based module builds, but all of our existing modules are still built using ant and I just tried to use appc run to build the hyperloop module on a 6.0.0 SDK. It failed with:
[INFO]  Producing [ModuleName]Bootstrap files using /Users/cwilliams/repos/hyperloop.next/android/build/generated/json/org/appcelerator/titanium/bindings/hyperloop-android.json
Generating BootstrapJS.cpp from bootstrap.js
[INFO]  Running the Android NDK ndk-build
[ERROR] Failed to run ndk-build
[ERROR]   
[ERROR] jni/Android.mk:35: warning: overriding commands for target /Users/cwilliams/repos/hyperloop.next/android/build/generated/KrollGeneratedBindings.cpp'
[ERROR] jni/Android.mk:35: warning: ignoring old commands for target /Users/cwilliams/repos/hyperloop.next/android/build/generated/KrollGeneratedBindings.cpp'
[ERROR] In file included from jni/../HyperloopBootstrap.cpp:19:0:
[ERROR] /Users/cwilliams/repos/hyperloop.next/android/build/generated/KrollGeneratedBindings.gperf:18:28: warning: declaration 'struct titanium::bindings::BindEntry' does not declare anything
[ERROR]  struct titanium::bindings::BindEntry;
[ERROR]                             ^
[ERROR] In file included from jni/../HyperloopBootstrap.cpp:19:0:
[ERROR] /Users/cwilliams/repos/hyperloop.next/android/build/generated/KrollGeneratedBindings.gperf: In static member function 'static titanium::bindings::BindEntry* HyperloopBindings::lookupGeneratedInit(const char*, unsigned int)':
[ERROR] /Users/cwilliams/repos/hyperloop.next/android/build/generated/KrollGeneratedBindings.gperf:20:43: error: 'hyperloop::hyperloop' has not been declared
[ERROR]  hyperloop.BaseProxy,::hyperloop::hyperloop::BaseProxy::bindProxy,::hyperloop::hyperloop::BaseProxy::dispose
[ERROR]                                            ^
[ERROR] /Users/cwilliams/repos/hyperloop.next/android/build/generated/KrollGeneratedBindings.gperf:20:88: error: 'hyperloop::hyperloop' has not been declared
[ERROR]  hyperloop.BaseProxy,::hyperloop::hyperloop::BaseProxy::bindProxy,::hyperloop::hyperloop::BaseProxy::dispose
[ERROR]                                                                                         ^
[ERROR] In file included from jni/../HyperloopBootstrap.cpp:19:0:
[ERROR] /Users/cwilliams/repos/hyperloop.next/android/build/generated/KrollGeneratedBindings.gperf:21:44: error: 'hyperloop::hyperloop' has not been declared
[ERROR]  hyperloop.ClassProxy,::hyperloop::hyperloop::ClassProxy::bindProxy,::hyperloop::hyperloop::ClassProxy::dispose
[ERROR]                                             ^
[ERROR] /Users/cwilliams/repos/hyperloop.next/android/build/generated/KrollGeneratedBindings.gperf:21:90: error: 'hyperloop::hyperloop' has not been declared
[ERROR]  hyperloop.ClassProxy,::hyperloop::hyperloop::ClassProxy::bindProxy,::hyperloop::hyperloop::ClassProxy::dispose
[ERROR]                                                                                           ^
[ERROR] In file included from jni/../HyperloopBootstrap.cpp:19:0:
[ERROR] /Users/cwilliams/repos/hyperloop.next/android/build/generated/KrollGeneratedBindings.gperf:24:47: error: 'hyperloop::hyperloop' has not been declared
[ERROR]  hyperloop.InstanceProxy,::hyperloop::hyperloop::InstanceProxy::bindProxy,::hyperloop::hyperloop::InstanceProxy::dispose
[ERROR]                                                ^
[ERROR] /Users/cwilliams/repos/hyperloop.next/android/build/generated/KrollGeneratedBindings.gperf:24:96: error: 'hyperloop::hyperloop' has not been declared
[ERROR]  hyperloop.InstanceProxy,::hyperloop::hyperloop::InstanceProxy::bindProxy,::hyperloop::hyperloop::InstanceProxy::dispose
[ERROR]                                                                                                 ^
[ERROR] In file included from jni/../HyperloopBootstrap.cpp:19:0:
[ERROR] /Users/cwilliams/repos/hyperloop.next/android/build/generated/KrollGeneratedBindings.gperf:23:54: error: 'hyperloop::hyperloop' has not been declared
[ERROR]  hyperloop.DynamicSubclassProxy,::hyperloop::hyperloop::DynamicSubclassProxy::bindProxy,::hyperloop::hyperloop::DynamicSubclassProxy::dispose
[ERROR]                                                       ^
[ERROR] /Users/cwilliams/repos/hyperloop.next/android/build/generated/KrollGeneratedBindings.gperf:23:110: error: 'hyperloop::hyperloop' has not been declared
[ERROR]  hyperloop.DynamicSubclassProxy,::hyperloop::hyperloop::DynamicSubclassProxy::bindProxy,::hyperloop::hyperloop::DynamicSubclassProxy::dispose
[ERROR]                                                                                                               ^
[ERROR] In file included from jni/../HyperloopBootstrap.cpp:19:0:
[ERROR] /Users/cwilliams/repos/hyperloop.next/android/build/generated/KrollGeneratedBindings.gperf:22:56: error: 'hyperloop::hyperloop' has not been declared
[ERROR]  hyperloop.InterfaceSubclassProxy,::hyperloop::hyperloop::InterfaceSubclassProxy::bindProxy,::hyperloop::hyperloop::InterfaceSubclassProxy::dispose
[ERROR]                                                         ^
[ERROR] /Users/cwilliams/repos/hyperloop.next/android/build/generated/KrollGeneratedBindings.gperf:22:114: error: 'hyperloop::hyperloop' has not been declared
[ERROR]  hyperloop.InterfaceSubclassProxy,::hyperloop::hyperloop::InterfaceSubclassProxy::bindProxy,::hyperloop::hyperloop::InterfaceSubclassProxy::dispose
[ERROR]                                                                                                                   ^
[ERROR] make: *** [/Users/cwilliams/repos/hyperloop.next/android/build/generated/obj/local/armeabi-v7a/objs/hyperloop/__/HyperloopBootstrap.o] Error 1

Comments

  1. Christopher Williams 2016-09-29

    The error looks like ti stems from https://github.com/appcelerator/titanium_mobile/blob/master/android/cli/commands/_buildModule.js#L728 It appears to be adding the module id/name into the namespaces array twice, causing the double-namespaced items?
  2. Andy Waldman 2017-01-27

    Friday 27th January 2017 ENV: MacOS:10.12.1 XCODE: 8.2.1 GM (golden master) APPC CLI Core: 6.1.0 APPC CLI NPM: 4.2.8 SDK: 6.1.0.v20170126175503 Studio build: 4.8.1.201612050850 NPM: 2.15.9 Node: 4.5.0 Step 1) build new classic app and allow services Step 2) allow hyperloop module Step 3) update to latest 6.1.0 SDK Step 4) build in command line by being in the app directory and using appc run Step 5) monitor logs and check for the original error Step 6) verify that the error no longer exists Closing ticket due to verification

JSON Source