i am using cordova for my application and using inAppBrowser plugin, before using this plugin cordova build android --release
command was working properly but after adding this plugin it is showing error, if i am not giving --release
it working properly means in the debug mode there is no issue.
The error which i am getting is as follow
/Users/mukesh/Documents/code/teamworkCordova/xyz/platforms/android/src/org/apache/cordova/inappbrowser/InAppBrowser.java:555: Error: Expected resource of type id [ResourceType]
actionButtonContainer.setId(1);
~
/Users/mukesh/Documents/code/teamworkCordova/xyz/platforms/android/src/org/apache/cordova/inappbrowser/InAppBrowser.java:563: Error: Expected resource of type id [ResourceType]
back.setId(2);
~
/Users/mukesh/Documents/code/teamworkCordova/xyz/platforms/android/src/org/apache/cordova/inappbrowser/InAppBrowser.java:587: Error: Expected resource of type id [ResourceType]
forward.setId(3);
~
/Users/mukesh/Documents/code/teamworkCordova/xyz/platforms/android/src/org/apache/cordova/inappbrowser/InAppBrowser.java:610: Error: Expected resource of type id [ResourceType]
edittext.setId(4);
~
/Users/mukesh/Documents/code/teamworkCordova/xyz/platforms/android/src/org/apache/cordova/inappbrowser/InAppBrowser.java:633: Error: Expected resource of type id [ResourceType]
close.setId(5);
~
/Users/mukesh/Documents/code/teamworkCordova/xyz/platforms/android/src/org/apache/cordova/inappbrowser/InAppBrowser.java:679: Error: Expected resource of type id [ResourceType]
inAppWebView.setId(6);
~
Explanation for issues of type "ResourceType":
Ensures that resource id's passed to APIs are of the right type; for
example, calling Resources.getColor(R.string.name) is wrong.
The latest release of the Inappbrowser plugin has several "errors" my Android Studio (version 1.4) complains about when building a release APK.
This on one of them.
The only way i found to get around this issue was to modify the content of InAppBrowser.java
I changed every occurence of object.setId(int) to object.setId(Integer.valueOf(int))
for example: inAppWebView.setId(6)
-> inAppWebView.setId(Integer.valueOf(6))
Everybody who finds a better (without manipulating the source) solution is welcome.
These "errors" are Lint errors, and it's because lint isn't sure that the number 6 is really the number 6, which is why you need to make sure that you do Integer.valueOf(int) on every object.setId.
I fixed this on the platform level so that it will no longer cause the compilation to fail, but to make lint happy, we will probably change the source so Integer.valueOf is used.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With