[TIMOB-23967] Android: appc run based module builds fail due to double-namespaced classes in KrollGeneratedBindings.gperf
GitHub Issue | n/a |
---|---|
Type | Bug |
Priority | Critical |
Status | Closed |
Resolution | Fixed |
Resolution Date | 2016-10-28T15:03:20.000+0000 |
Affected Version/s | Release 6.0.0 |
Fix Version/s | Release 6.0.0 |
Components | Android, CLI |
Labels | n/a |
Reporter | Christopher Williams |
Assignee | Gary Mathews |
Created | 2016-09-29T15:12:12.000+0000 |
Updated | 2017-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
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?
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