我想设置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
你真的帮了我一个大忙,非常感谢。 –