Details
-
Type:
Bug
-
Status: Closed
-
Priority:
High
-
Resolution: Unresolved
-
Affects Version/s: Release 9.1.0
-
Fix Version/s: Release 9.3.0
-
Component/s: Android
-
Labels:
-
Story Points:5
-
Sprint:2020 Sprint 23, 2020 Sprint 24
Description
Steps to reproduce:
- Download the ti.map module.
- CD to folder: ./ti.map/android
- Do an appc ti sdk select 9.1.0 or higher Titanium version.
- Build via: appc run -p android --build-only
- Set up an app with Titanium 9.0.3.GA and built "ti.map" module.
- Build and run on Android.
- Notice the app crashes on startup with a linker error.
Cause:
If a module's Java method is assigned both a Kroll.method annotation and Kroll.getProperty/Kroll.setProperty annotation, then the code generation will inject a C++ logDeprecation() function whose signature has changed as of 9.1.0 (we've added a 3rd argument).
https://github.com/appcelerator/titanium_mobile/pull/11049/files
Work-Around:
If you are using both Kroll.getProperty and Kroll.method annotations on the same Java method, then remove the Kroll.method since support for this is deprecated. You must also do the same for setters.
@Kroll.getProperty |
@Kroll.method // <- Remove this annotation |
public String getName() { |
return ""; |
}
|
|
@Kroll.setProperty |
@Kroll.method // <- Remove this annotation |
public void setName(String value) { |
mName = value;
|
}
|