I am absolutly new in Android development and I have the following problem trying to build a sample project that I have downloaded from Internet.
When I try to build it I obtain the following error message:
Error:Cause: failed to find target with hash string 'android-18' in: C:\Users\Andrea\AppData\Local\Android\sdk
Install missing platform(s) and sync project
So I search online and I found this SO link: Android studio - Failed to find target android-18
Ok so I go into Tools > Android > SDK Manager and infact I have installed Android 6 corrisponding to the API level 23 but not Android 4.3 corrisponding to API level 18.
So what it means? It means that I have installed a different version o the Android framework ?(is it the SDK considerable as a framework or what?)
So, on Android Studio can I install different version of the SDK?
I think that the API level have to be defined in some way into the dowloaded application. How can I specify to this application to don't use the API level 18 but instead it use the installed API level 23 ? I think that it is not a problem because I have installed a newest version that have to support all the stuff of the oldest one, is it?
I will explain the problem a bit for you and then provide you with the solution.
You are facing this problem, because your project is targeting API level 18 to compile the project. So you MUST have API 18 SDK installed to compile the project.
This is why the IDE is complaining that,
Install missing platform(s) and sync project
The SDK is not the framework. The Android framework is same all over, but with different API levels new updates are pushed to the SDK, the latest being API 23, Marshmallow.
You should not download an older SDK to compile the project.
Always try to use the latest SDK available to work with. So, just head over to your build.gradle file or AndroidManifest.xml file and change the compileSdkVersion to 23.
You can either change the compileSdkVersion version in build.gradle to 23 or whatever version you have in your local machine
You can obtain the API Level 18 from the SDK Manager.
I go into Tools > Android > SDK Manager and infact I have installed Android 6 corrisponding to the API level 23 but not Android 4.3 corrisponding to API level 18.
So what it means? It means that I have installed a different version of the Android framework ?
Yes, you have a newer version of the SDK.
on Android Studio can I install different version of the SDK?
Yes, that is what the SDK Manager is designed for
I think that the API level have to be defined in some way into the dowloaded application. How can I specify to this application to don't use the API level 18 but instead it use the installed API level 23 ?
It is defined. Check either the AndroidManifest.xml or the build.gradle file in the module for the app (not in the project root). You should see some combination of minSdk, targetSdk, and/or compileSdk with a number after it. Since you are getting an error about missing SDK 18, then that number will be 18.
I think that it is not a problem because I have installed a newest version that have to support all the stuff of the oldest one, is it?
The support libraries are separate from the core SDK. You cannot run SDK 23 specific code on devices that have a version less than 23, therefore, to be safe, it is recommended that you start with downloading SDK 18, then run it, then try updating the compileSdkVersion number.
Related
I want to develop for Android 23 (Marshmallow). I created a new project, modify/remove everything and only use these as my project's components.
Android SDK Build Tools 23.0.3
Android SDK Platform 23
Android Gradle Plugin 2.1.3
Gradle 2.14.1
Target SDK version: 23
Minimum SDK version: 23
Compile SDK version: 23
JDK 1.8.0_211
I manage to get it running on my Android 28 (Oreo) device, but I read it somewhere that the later version of SDK, Build Tools and Gradle provides better security. Should I use all of the latest tools? if so, can I use the latest tools to develop only for Android 23?
Because when I installed Android Studio, it prompt me to target my SDK to 26 since Google Play requires developers to do so. Please teach me the best practice to develop for older Android version. Thank you in advance.
I think you are not aware of what targetSDKversion means.
Let me clarify you. When Google releases a new version of android it brings new features, security and performances improvements. When you configure targetSDKversion then the user can benefit from these improvements while your app still runs on the older version.
For more information:
https://developer.android.com/distribute/best-practices/develop/target-sdk
You do not develop for a single SDK version.
You develop for a RANGE of versions, going from MinimumSDK (yours would be 23) to TargetSDK (minimum of 26 to get into the Play Store, but always best to go the latest possible)
https://learn.microsoft.com/en-us/xamarin/android/app-fundamentals/android-api-levels?tabs=windows
I have installed android-sdk on my computer. My API level is 27 but when I want to build an android app in Unity I have an error that says The minimum API level you need is 23 but the android API level on my computer is 0.
I have uninstalled and reinstalled the android SDK. I changed the name of my android folder in the tools folder from android 8.0.1 to android_23 and android_27.
I changed the folder of android SDK.
I don't have android studio on my PC.
I don't know what to do. Help Please.
Remove SDK platform above then 23. Minimum(Maximum) install API should be 23. don't install SDK Platform greater then 23, You have APi 27, so uninstall it and install 23.
I can't seem to select other API higher than Marshmallow
It is said here than the framework that you can select depends on the version of Xamarin, but my version is already v8.x
Other forums also said to install the SDK Platform for your target framework, but even if I installed API 27, it still didn't show up in the target framework
I also updated the tools to the latest version
How to add the other API to the selection? What other things did I missed?
So I just reinstalled the lastest version of Xamarin after a clean install of my laptop. There were no errors during the Xamarin install, so everything seemed okay. However, I went to open an existing project based on Android 3.1 (API 12) and got the following error when I compiled:
Unsupported or invalid $(TargetFrameworkVersion) value of 'v3.1'. Please update your Project Options.
Checked out my project properties and found that both the Compile and Target Android version combos were blank. I have several versions listed in the combos, but v3.1 (API 12) is nowhere to be found. When I look in the Android SDK Manager, it shows that Android 3.1 (API 12) is installed. Anyone know why it would be missing in Visual Studio/Xamarin?
We removed some of the API levels. Your application can still run on these completely fine, but you can't use them to Compile against or to Target. You will want to set your Target Framework the latest version API 21 currently and set the Minimum to the minimum you want. I usually recommend Target = 21, Minimum either 15 or 10 based on AppCompat that you need.
http://developer.xamarin.com/releases/android/xamarin.android_5/xamarin.android_5.1/#Removal_of_API_Levels
i want to build an android project for API 19 so i choose this API to compile with, but when eclipse create the projects its tells me that some ressources are not found and the R class is not generated. the only way to avoid this errors is to compile with API21
So why i can not use my API 19 in compilation ??
THNKS for all
Compile SDK Version can and should always be set to the latest SDK released. It is target SDK version that you should set to the latest version you've tested your app on.
Eclipse by default includes AppCompat - the part of the Support Library which ensures a consistent look and feel across all API versions v7+ and the newest version, revision 21, compiles against API 21.
So why i can not use my API 19 in compilation ?
be sure to have the api installed:
Window -> Android SDK Manager