Я хочу установить android-22 в качестве целевого Android-sdk. Мне нужно это как разрешение на работу с камерой на Android 6 и выше. (описанный здесь https://developer.android.com/training/permissions/requesting.html, предложил здесь Workaround for Android 6.0 Permissions) Но мой Cordova 6.2.1 устанавливает по умолчанию 23. Я SDK изменили его в AndroidManifest.xmlbuild cordova новый пустой проект и цель для android-22
<uses-sdk android:minSdkVersion="14" android:targetSdkVersion="22" />
построен, но APK был тот же размер, как если бы я Buld для андроид-23. Итак, для того, чтобы он был создан для android-22, я удалил sdk-23 и оставил только sdk-22. Строить не начали и Кордова сказал, мне нужно Android-23 SDK
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)
, поэтому я изменил цель андроида-22 в project.properties и CordovaLib/project.properties как предложено здесь. Сбой сборки.
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
Вскоре моя проблема, я не знаю, как целевой другой, чем новейшие андроид-23 платформы. Проект пуст, только что создан, без плагинов и без кода.
Можно ли создать и построить для android-22 в кордове 6.2.1. Должен ли я понижать кордову?
Да, это работает! Откуда у вас была информация, что «[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], и я подумал, что кордова снова и снова задает цель как 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
Ты действительно сделал мне большую услугу, спасибо большое. –