Cordova inAppBrowser" ResourceType"发布版本的类型问题

时间:2015-09-30 13:34:24

标签: android cordova inappbrowser

我在我的应用程序中使用cordova并使用inAppBrowser插件,在使用此插件之前cordova build android --release命令工作正常但添加此插件后显示错误,如果我没有给它--release它正常工作正确意味着在调试模式下没有问题。 我得到的错误如下

    /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.

2 个答案:

答案 0 :(得分:25)

最新版本的Inappbrowser插件有几个"错误"我的Android Studio(版本1.4)在构建发布APK时抱怨。

这是其中一个。

我找到解决这个问题的唯一方法是修改内容 InAppBrowser.java

我改变了每一次 object.setId(int) to object.setId(Integer.valueOf(INT))

例如:inAppWebView.setId(6) - > inAppWebView.setId(Integer.valueOf(6))

欢迎所有找到更好(不操纵源代码)解决方案的人。

答案 1 :(得分:1)

这些"错误"是Lint错误,因为lint不确定数字6是否真的是数字6,这就是为什么你需要确保你对每个object.setId做Integer.valueOf(int)的原因。

我在平台级别修复了这个问题,这样它就不会再导致编译失败了,但是为了使lint满意,我们可能会更改源代码以便使用Integer.valueOf。