我想設置android-22作爲目標android sdk。我需要它作爲Android 6及更高版本的相機的workaroud權限問題。 (這裏所描述https://developer.android.com/training/permissions/requesting.html,這裏建議Workaround for Android 6.0 Permissions) 但我的科爾多瓦6.2.1設置默認的SDK 23.我在AndroidManifest.xml中改變了它建立科爾多瓦新的空項目和目標android-22
<uses-sdk android:minSdkVersion="14" android:targetSdkVersion="22" />
建,但APK是相同的大小,如果我的球泡Android的23。因此,爲了確保它是爲android-22構建的,我已經刪除了sdk-23並且只保留了sdk-22。 構建沒有啓動和科爾多瓦說,我需要Android的SDK 23
e:\projects\android\qp2>cordova build --release
Error: Please install Android target: "android-23".
Hint: Open the SDK manager by running: "c:\android\android-sdk\tools\android.bat
"
You will require:
1. "SDK Platform" for android-23
2. "Android SDK Platform-tools (latest)
3. "Android SDK Build-tools" (latest)
,所以我在project.properties和CordovaLib/project.properties改變目標到Android-22在這裏建議。生成失敗。
E:\projects\android\qp2\platforms\android\CordovaLib\src\org\apache\cordova\CordovaInterfaceImpl.java:191: error: cannot find symbol
getActivity().requestPermissions(permissions, requestCode);
^
symbol: method requestPermissions(String[],int)
location: class Activity
E:\projects\android\qp2\platforms\android\CordovaLib\src\org\apache\cordova\CordovaInterfaceImpl.java:197: error: cannot find symbol
getActivity().requestPermissions(permissions, requestCode);
^
symbol: method requestPermissions(String[],int)
location: class Activity
E:\projects\android\qp2\platforms\android\CordovaLib\src\org\apache\cordova\CordovaInterfaceImpl.java:202: error: cannot find symbol
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M)
^
symbol: variable M
location: class VERSION_CODES
E:\projects\android\qp2\platforms\android\CordovaLib\src\org\apache\cordova\CordovaInterfaceImpl.java:204: error: cannot find symbol
int result = activity.checkSelfPermission(permission);
^
symbol: method checkSelfPermission(String)
location: variable activity of type Activity
E:\projects\android\qp2\platforms\android\CordovaLib\src\org\apache\cordova\CordovaActivity.java:493: error: method does not override or implement a method from a supertype
@Override
^
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
5 errors
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':CordovaLib:compileReleaseJava'.
> Compilation failed; see the compiler error output for details.
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
Error: cmd: Command failed with exit code 1
不久,我的問題是,我不知道如何定位等,比最新的Android-23平臺。項目是空的,只是創建,沒有插件和代碼。
是否有可能在cordova 6.2.1中爲android-22創建和構建。我應該降級科爾多瓦嗎?
是的,它的工作原理!你從哪裏得到這些信息,「[email protected]需要API 23 ....並且爲API 22構建,你需要專門安裝cordova-android @ 4」?我真的很確定,那是Android 6.0〜API23,Android 5.1.1〜API22,Android 5.0.1〜API21等等。我從Android SDK Manager窗口中獲得了這個錯誤信息。所以我整天試着[email protected],我想知道cordova一次又一次地設定目標爲api 23. – user2106769
「Android 6.0〜API23,Android 5.1.1〜API22,Android 5.0.1〜API21」 - 這個是正確的,但是因爲您使用Cordova(非本機Android)構建,所以您還需要考慮Cordova平臺中本機代碼的依賴關係:https://cordova.apache.org/news/2016/01/28 /tools-release.html – DaveAlden
你真的幫了我一個大忙,非常感謝。 –