执行cordova平台更新后,Android目标会发生变化

时间:2015-06-16 22:43:01

标签: java android node.js cordova build

我正在尝试将我现有的cordova项目从android 3.6.4更新到3.7.2 ...... 在更新之前,project.properties中指定的目标设置为“android-19”。 但是当我进行更新时,它会更改为'android-21'。

  

mac $ cordova -v

     
    

4.3.0

  
     

mac $ cordova平台ls

     
    

已安装的平台:android 3.6.4,浏览器3.5.2,ios 3.7.0
    可用平台:amazon-fireos,blackberry10,firefoxos

  

这是我用来更新cordova android的命令

  

mac $ cordova平台更新android@3.7.2

     
    

更新android项目...
    Android项目现在版本为3.7.2     如果您从3.2.0之前的版本更新并使用IDE,我们现在要求您导入“CordovaLib”库项目。

  
     

mac $ cordova平台ls

     
    

已安装的平台:android 3.7.2,浏览器3.5.2,ios 3.7.0
    可用平台:amazon-fireos,blackberry10,firefoxos

  

此时android / build.properties有target = android-21。

在我的本地机器上,我有多达22的android SDK,所以它在本地工作正常。但是在部署框19上是限制。所以没有机会在那里更新SDK版本。

如果我手动将build.properties中的目标更改为android-19

,会发生什么
  

-compile:
      [javac]将98个源文件编译为/ build / path / a / long / one / platforms / android / CordovaLib / ant-build / classes

[javac] //build/path/a/long/one/platforms/android/CordovaLib/src/org/apache/cordova/CordovaWebViewClient.java:35:
     

错误:找不到符号
      [javac] import android.webkit.ClientCertRequest;
      [javac] ^
      [javac] symbol:class ClientCertRequest
      [javac] location:package android.webkit
      [javac] //build/path/a/long/one/platforms/android/CordovaLib/src/org/apache/cordova/CordovaWebViewClient.java:145:   错误:找不到符号
      [javac] public void onReceivedClientCertRequest(WebView视图,ClientCertRequest请求)
      [javac] ^
      [javac] symbol:class ClientCertRequest
      [javac] location:class CordovaWebViewClient

等.....

我已经尝试了许多改变目标的事情但到目前为止没有任何好处发生。 我的config.xml中包含min和target sdk设置。

<preference name="android-minSdkVersion" value="14"/>  
<preference name="android-targetSdkVersion" value="19" />  

以上行确实会导致更新AndroidManifest.xml文件,但就此而言。对project.properties文件没有任何影响。
任何帮助将非常感激。感谢

1 个答案:

答案 0 :(得分:0)

好吧,我不知道这是否会对任何人有所帮助,但这是我在这个问题上的2美分:

无法降级android / build.properties文件中的目标级别。所以保持21或22。原因是:cordova库使用Android API 21 +库...所以如果你试图降级它就会抱怨。

您可以在config.xml中管理目标SDK设置,它将负责生成AndroidManifest.xml文件。所以简而言之,如果build.properties中设置的目标是21,那么你可以在运行较低版本的Android设备上运行该应用程序。

希望这有帮助。