How to add manually Google API library to a project in Eclipse? - android

I'm doing small GPS project. Before I work on 32-bit laptop and I had option Target device:
2 x per every API. one was from Google and second from device. my laptop went down. I've bought new one 64-bit. I've installed every thing from beginning and now I don't have Google API option when I'm beginning new project. And when I try to add any libraries to an existing project I have also not even a single one to pick. I've had reinstall everything 3 times and nothing, so now
I have only one option - add it manually to my project.
Where I can download Google Maps API for Android, and how to add them to my existing project manually

You can install the Google API targets by opening the SDK and AVD manager. Either go to Window -> SDK and AVD Manager inside eclipse or start the android application from the ANDROID_SDK\tools folder.
When open, select Available packages on the left, then open the Android Repository tree. There should be various google APIs listed. Check the ones with the API levels you need and click Install selected. After everything went through, you can start a new project with the desired google APIs.

Related

com.google.gms.location does not exist

I am trying to add a map on the Xamarin.Android application. So far, I have added only map, I did not add any location listener. However, I keep getting the following error
package,com.google.gms.location does not exist
I wonder what I am missing or doing wrong?
Here is the dll's added into the references from the nuget
Make sure all packages are of the same version (27.0.0)
Make sure Xamarin.Build.Download is installed (it downloads the required .jar files etc.)
Clean & Rebuild the android Project
Try entering Update-Package -Reinstall Xamarin.GooglePlayServices.Locationinto the package manager console
Clean & Rebuild the android Project
Try a higher version number of the package (newer ones are stable too)
If you want to use GooglePlayService. The test device/emulator of your app needs to include Google API. If you are using an emulator you can follow the steps below:
Download Google API System Image for your android API Level through Tools->Android->Android SDK Manager(ex for API Level 25 ):
Create a new Google API Emulator through Tools->Android->Android Emulator Manager->Create:
Clean your project and rebuild it, run your project in this emulator.

AVD Manager on Android Studio 1.5.1 and install to a custom location emulator won't run

I installed Android Studio (1.5.1 -- see image for build details).
While installing I chose the custom option so I could install a specific path.
I knew that my %SystemDrive% was pointed at a network location and I wanted to install to my local disk.
So, this means that by default, the application would've installed to :
\networkpath\users\myUserName\Android\SDK
However, since I chose the custom installation I chose a local path:
c:\users\myUsername\Android\SDK
Project Creation and Build Work Fine
Everything seemed to install fine and I was able to create a new project and build it with no problems.
However, when I attempted to run the built and then basically failed silently.
The emulator never appeared and no error occurred.
Android Monitor just shows a message stating that No Connected Device detected.
AVD Manager
Luckily I knew a bit about checking to see what happened with the emulator and I opened up AVD Manager.
The listed device displayed an error.
I right-clicked the device and chose "View Details".
That's when the AVD manager showed that it is attempting to read from the network path, even though I changed this in the custom installation.
\networkPath\Users\myUserName\Windows.android\avd\Nexus4.avd
and
\networkPath\Users\myUserName\Windows.android\avd\Nexus4.ini
Registry Edit
I closed Android Studio. Then I opened regedit and edited the values at:
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList
which originally looked like the following:
And changed them so they all point directly to the c:\ drive (instead of %systemdrive%)
Environment Variable : ANDROID_SDK_HOME
I found that others have mentioned the ANDROID_SDK_HOME environment variable and I noticed that my machine doesn't have that value defined at all so I added it and set it up like the following:
c:\users\myUsername\Android\SDK
I then started Android Studio again and started the AVD Manager.
This time there were no devices show, but instead AVD Manager prompted me to create one with the following window:
Now, I'm attempting to download one of the devices with Google APIs, but each time I do, they download and install successfully, but then disappear from the list. Notice, in the next image there are not API Level 15 or 16 with Google APIs for arm architecture.
Notice additionally that there is one listed for API Level 17 with arm.
I will now attempt to install that one.
You can see that it downloaded successfully and installed fine.
Now, I click the [Finish] button.
The item no longer appears in my list.
The API Level 15 item is chosen automatically. I'm assuming because that one was downloaded originally when I installed Android Studio.
Finally, if you uncheck the [ ] show downloadable system images checkbox -- which is terribly confusing -- and I'm assuming shows you the ones you've already downloaded, then you'll see that it only shows the one API Level 15 virtual device.
This is all quite terrible. Has anyone seen this problem?
Has anyone else been able to fix it?
I'm assuming that I'll just have to go and do a complete re-install of Android Studio.
You should look in the idea.properties file in your project (Android Studio path to different directories). It sounds like this is set to override the system's settings.
EDIT 2 With Final Solution
Thanks to an alert and astute SO post-er (code-apprentice) I was able to get to a solution.
Here's what I had to do.
create idea.properties file and place it at the \networkLocation\myUserName\.Android 1.5\
place the two lines in it which point to my local disk
idea.config.path=C:/Users/myUserName/.AndroidStudio1.5/config/
idea.system.path=C:/Users/myUserName/.AndroidStudio1.5/system/
Then I started Android Studio again and I attempt to install a system image which included the Google APIs.
It worked and it was added to the list:
However, it still did not show the other API LEVELS which I had installed before (15, 16, etc).
Deleted Them From Disk
I noticed that they had been located in a local folder at :
%userprofile%\Android\SDK\add-ons
for whatever reason.
I deleted all of the folders under that path and the original APIs with Google choices appeared in my list again. See highlighted item in image.
SOLUTION
Now when I install them they show up in the list and I can create new AVDs based upon them. Everything works.
EDIT
I used a tool I wrote to watch where Android Studio wrote to disk and I found a path that reveals the problem:
Even though I've made extensive changes to insure the installation would install completely on my local disk, Android Studio saves some (a lot) of data out to this path.
I did a Google on : .AndroidStudio 1.5\config\
That led me to the following documentation:
http://tools.android.com/tech-docs/configuration
There, you will see that the installation should be using %userprofile% to determine where it writes this data. My %userprofile% points to my local disk (c:\users\myUserName) but Android Studio still insists on writing data out to the network.
Here's the important information:
Windows:
%USERPROFILE%\.{FOLDER_NAME}\studio.exe.vmoptions
and/or
%USERPROFILE%\.{FOLDER_NAME}\studio64.exe.vmoptions
%USERPROFILE%\.{FOLDER_NAME}\idea.properties
I deleted the remote .Android Studio 1.5 directory and copied it to my %userprofile% (local) directory. Then I restarted Android Studio and it thinks that it needs to generate all that again because it wants to place it at the remote directory again.
Core issue:
Obviously, it is not using %userprofile%
It gets worse.
I uninstalled the application and all of the settings (supposedly).
Then I installed the entire thing again and it looked as if it were choosing the correct installation path by default:
But, when I started Studio back up then it opened up the project I had created with the first install.
Plus, I still cannot see the API image that I supposedly installed before. Only that one image. Nothing else.
This is really not a great installation system. I'm working on a book which helps beginning Android Devs but if they fall into this problem loop there is no way to get them out of it with a good running emulator.
Very unfortunate.
Download the respective SDK and API levels and Image Systems on Android SDK Manager.
And then they'll show up normally on AVD.

how to add the new api level in android?

I am using Android API level-8(i.e. Android 2.2 Froyo). I want to add the new api level-5 ( i.e. Android 2.0 Eclair).
I have updated avd manager but the api level-5 can't display.
When I import the project in workspace the right click the project select android tools and fix the Project properties then Display this type error in console
Unable to resolve target 'android-5'
You should clarify what you mean by add.
If you mean add another OS image, then you should use the Android SDK Manager.
In the package name you should find the Android 2.0. If you didn't have it installed, then install it and create a new OS Emulator with this OS version.
There's a topic already discussed here. Link
If you mean you want to build against Android 2.0, you should simply right click on the project, go to properties, and then Android. You should see a list of targets. Simply check the one right for you.
Go to sdk manager and install required lvl from it
Goto window->android sdk manager and check the boxes you want to install. One of the checkboxes also concerns the avd, install it and then goto window->avd manager to create a new AVD.

Shared library missing in android.

02-18 00:02:08.432: ERROR/PackageManager(57): Package com.example.brown requires unavailable shared library com.google.android.maps; failing!
I got this exception in logcat.
Can anyone guide me?
As CommonsWare said, your emulator is missing the library. The Google Maps Library's documentation's Overview page has info on how to create the right kind of virtual device for the emulator. The gist is:
Launch the AVD Manager by using the android command without any options. If you are developing in Eclipse/ADT, you can also access the tool from Window > Android SDK and AVD Manager.
Click the "New" button to begin creating a new AVD.
In the dialog that appears, specify a name for the AVD and select the system image target that you want the AVD to use. Select one of the "Google APIs (Google Inc.)" targets, making sure to choose a version whose API Level matches the android:minSdkVersion attribute in your application's manifest, as described above.
Configure the other options and then click "Create AVD".
Once you've finished creating the AVD, you can run it from the AVD Manager UI or you can use the emulator's command-line interface. If you are developing in Eclipse, you can configure a Run Configuration to start the AVD and install your application on it.
For more information about AVDs, see Android Virtual Devices on the Android Developers site.
I had the similar problem on a real device. After a loot of googling I found this answer
fixing missing shared library. It turns out that on some custom roms the comp.google.android.map library is missing, you have to install it manually.
download googleapps
extract two files
system/etc/permissions/com.google.android.maps.xml
system/framework/com.google.android.maps.jar
remount the /system filesystem rw (mount -o rw,remount /system)
copy the files in
do a chmod 644 on them
reboot
This error occurred to me on an actual device, not an AVD like the other answers. In my case I was running on a Nexus S with a custom ROM that did not have Google Maps installed.
I have read elsewhere that the com.google.android.maps shared library is bundled with the ROM itself and is not bundled as part of an APK.
Therefore the solution for me was to revert to the stock ROM which had Google Maps installed.
BTW, the title of this thread refers to an error that is found in the DDMS LogCat. The first error most users will see (before checking LogCat) will be in the console of Eclipse:
Installation error: INSTALL_FAILED_MISSING_SHARED_LIBRARY
Please check logcat output for more details.
Your emulator is missing the Google APIs. Create a new AVD that contains the Google APIs, and this error should go away.
As jfritz42 I got this error on a real device with a custom ROM (Cyanogenmod). The error was caused by the fact that I did not install the Google Apps package, since it contains a lot of apps that just annoy me. However, there is a solution how to install the google.maps library without massing up your system with the 19 Google Apps in this package. Just download the package (zip file) and remove all .apk files from system/app in this zip. Afterwards, you can install the zip by using the ROM Manager or via the recovery mode. Then you should have the maps library installed on your system. The Google Apps included in this package (e.g. the Maps app) can be installed separately afterwards.
In case with real device try remove from manifest file:
<uses-library android:name="com.google.android.maps" />
I've experienced this error after the AVD was set up properly and working okay. The AVD was still using the Google APIs and I could see the reference to the maps library in Eclipse. The only way I found to resolve this was to delete the AVD and create a new one, as advised by fiXedd.
fiXedd (see above) is correct.
You can edit devices you have already created or create a new one. When you create or edit a device inside the AVD Manager, instead of selecting this kind of version target:
Android x.x.x - API Level x
Simply use this kind instead:
Google APIs (Google Inc.) - API Level x

Is there a way to hide the Android Device Chooser?

Whenever I run my app I get the Android Device Chooser dialog:
This is happening because I am using the Google APIs for 1.6 and trying to run the application on my Nexus one. Is there any way to make this automatically, or to not check the compatibility? Sometimes when I make a modification and quickly after I save and run the application, Eclipse will build the project and the Android Device Chooser dialog will show briefly and disappear and the app won't run. I have to click run again for it to work. Any workarounds?
Once you have installed ADT, you need to define an ADT launch configuration, in order for your project to execute itself as an Android executable.
(source: google.com)
Then, do not forget to To go in Eclipse->Preferences->Run/Debug->Launching.
In the “Launch Operation” subsection, select “Always launch the previously launched application”:
(source: turbulent.ca)
Create a run configuration.
Run -> Run Configurations.
Select your project and specify your target and from then on run that configuration when you run that app.
The key is the very top line in the screen shot of your Android Device Chooser. Notice that it is asking you to select a device compatible with a Google API target. This dialog only ignores your launch preference when the Android version you selected in your project's properties is one of the "GoogleAPIs" type. Choosing one of the Android Open Source Project versions will respect your launching preferences.
This is a bug (or intentional behavior) in ADT when anything other than a stock SDK version is selected. You will experience this when targeting "Google APIs" rather than a plain Android SDK.
For the details, see the implementation of AndroidLaunchController.java within the adt project. (Basically, whenever you target something other than a plain SDK, it can't tell if the attached device satisfies the requested libraries, in this case Google APIs.)
Just set the 'target' tab to the 'Automatic' option and it will launch on your device automatically.

Categories

Resources