I have a java REST service which works fine, I'm trying to access to it through an Android client, but the connection is never made. This is my manifest:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.ipn.escom.clientRest.activity"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="7" />
<uses-permission android:name="android.permission.INTERNET"/>
<application
android:icon="#drawable/ic_launcher"
android:label="#string/app_name" >
<activity
android:name="com.mx.ipn.escom.clientRest.activity.ClientRestActivity"
android:label="#string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
This is my client class that is trying to access my service TemaClient. This is my logcat output LogCat, I don't understand why the connection is never made.
My REST service is in a Windows XP computer and the IP address I'm using to access to it is the one that ipconfig shows me, if I put that same IP on a web browser I get a response, but the Android client never makes the connection. What am I doing wrong?
It seams you are accessing network behind a proxy, to use network behind a proxy start emulator by
emulator -avd avdname -http-proxy http://192.168.1.1:8080
I am assuming avdname is avdname and proxy gateway ip is 192.168.1.1
Fixed this problem, I had to make sure my Android device was connecting to the same network as my REST service.
Related
Trying to connect to local Api on local server 5000 and Fail
Connecting by browser to http:/127.0.0.1:5000/user/1
works fine.
connecting to external api also work fine.
trying to connect to same address with android retrofit ,
keep getting
Skipped xxx frames! The application may be doing too much work on its main thread.
manifest file.
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.android_movieapp">
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
<application
android:allowBackup="true"
android:icon="#mipmap/ic_launcher"
android:label="#string/app_name"
android:roundIcon="#mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="#style/Theme.AndroidmovieApp">
<activity
android:name=".MovieListActivity"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
Problem solved by
url = 10.0.2.2
add android:usesCleartextTraffic="true"
to manifest application tag.
Android Emulator is an emulated separate device. Localhost addresses like 127.0.0.1 will therefore resolve to the localhost of the Android emulator NOT your computer that you are running it on.
You should instead use the address
10.0.2.2
https://developer.android.com/studio/run/emulator-networking
I'm trying to write my first android app.
Eclipse does recognise my phone, but can't launch the app on it. The "OK" button can't be pressed.
Any idea?
Thanks
xml file:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.app1"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="21" />
<application
android:allowBackup="true"
android:icon="#drawable/ic_launcher"
android:label="#string/app_name"
android:theme="#style/AppTheme" >
<activity
android:name=".MainActivity"
android:label="#string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
Solved.
The problem is with my phone.
I checked with another device and it was OK.
Thanks and sorry for botherring.
Check if your SDK is up to date using Android SDK Manager in Eclipse. If not update it. Install min sdk version and max sdk version package you want.
Check if OEM drivers for the respective device are installed on the PC and Developer options on the phone are activated. To know what are OEM drivers check this link
Lastly check for hardware loose connection in the USB wire and unplug and plug it again. :) :P
I tried a lot of time running my app in my cell Samsung Galaxy S3 but always getting the same thing
[2014-04-14 20:11:14 - BridgeText] Android Launch!
[2014-04-14 20:11:14 - BridgeText] adb is running normally.
[2014-04-14 20:11:14 - BridgeText] Performing com.bridge.text.ChatNameActivity activity launch
[2014-04-14 20:11:14 - BridgeText] No active compatible AVD's or devices found. Relaunch this configuration after connecting a device or starting an AVD.
Also tried to reset adb but getting following error:
[2014-04-14 20:15:22 - DeviceMonitor] Adb connection Error:An existing connection was forcibly closed by the remote host
[2014-04-14 20:15:23 - DeviceMonitor] Connection attempts: 1
my device's usb debugging mode is enabled and my device's android version is 4.3 and I also have updated my API. However I also show my AndroidManifest file if it makes it easy to understand.
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.bridge.text"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="18" />
<application
android:allowBackup="true"
android:debuggable="true"
android:icon="#drawable/ic_launcher"
android:label="#string/app_name"
android:theme="#style/AppTheme" >
<activity
android:name="com.bridge.text.ChatNameActivity"
android:label="#string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="com.bridge.text.TextActivity"
android:label="#string/text_messages_title"
android:parentActivityName="com.bridge.text.ChatNameActivity" >
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.bridge.text.ChatNameActivity" />
</activity>
</application>
<uses-permission android:name="android.permission.INTERNET"/>
</manifest>
Any help would be appreciated.
You may need to manually enter a value in your adb_usb.ini file. On Windows, that can be done with:
echo 0xYYYY >> "%USERPROFILE%\.android\adb_usb.ini"
where YYYY is the 4-digit Vendor ID for your device. I believe that's '04e8' for Samsung devices.
You'll need to then restart ADB with:
adb kill-server
adb start-server
adb devices
Several known Android vendor IDs are at the bottom of this page. And here's a more complete list of USB IDs.
I cannot run a default-generated app from neither AVD or my Moto X. I don't have the developer edition, but I am in debug mode.
The AVD returns no error, however it loads the android bootlogo and stays there. I waited for a bit, no change.
Moto X V: 4.4.2
Manifest:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.trevor1134.liveleak"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="17"
android:targetSdkVersion="19" />
<application
android:allowBackup="true"
android:icon="#drawable/ic_launcher"
android:label="#string/app_name"
android:theme="#style/AppTheme" >
<activity
android:name="com.trevor1134.liveleak.MainActivity"
android:label="#string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
The app is going to be a non-released app because I don't like the official LL app. :P
I suggest you using Intel Atom processor for 4.4.2. Make sure you update from android SDK.
Here your new setting for AVD.
DO NOT CHOOSE ARM because it more slower than Intel Atom. enjoy !
Install the ADB Drivers from: https://motorola-global-portal.custhelp.com/app/answers/detail/a_id/88481
This will fix your problems, but if you need a tutorial, look here: http://theunlockr.com/2009/10/06/how-to-set-up-adb-usb-drivers-for-android-devices/
I am testing my app in Samsung Galaxy S2 with Android 2.3.4
I am following
http://developer.android.com/guide/topics/usb/accessory.html
instructions.
When ever I try to run it, usbManager.getAcccessoryList(); giving null.
Even I tried by connecting OTG cabel and pendrive to it.
My manifest.
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.test"
android:versionCode="1"
android:versionName="1.0" >
<uses-feature android:name="android.hardware.usb.accessory" />
<uses-sdk android:minSdkVersion="10" />
<application
android:icon="#drawable/icon"
android:label="#string/app_name" >
<uses-library android:name="com.android.future.usb.accessory" />
<activity
android:name=".SplashScreen"
android:clearTaskOnLaunch="true"
android:label="#string/app_name"
android:screenOrientation="portrait" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".Advanced"
android:label="#string/app_name"
android:screenOrientation="portrait" >
</activity>
<activity
android:name=".Edit"
android:label="#string/app_name"
android:screenOrientation="portrait" >
</activity>
<activity
android:name=".Add"
android:label="#string/app_name"
android:screenOrientation="portrait" >
</activity>
<activity
android:name="Main"
android:screenOrientation="portrait" >
<intent-filter>
<action android:name="android.hardware.usb.action.USB_ACCESSORY_ATTACHED" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<meta-data
android:name="android.hardware.usb.action.USB_ACCESSORY_ATTACHED"
android:resource="#xml/accessory_filter" />
</activity>
</application>
</manifest>
I had the same problem but my tablet has ICS. If try what I did, might work. I've been searching a lot for this, and couldn't find it, but thanks to all the people who have spent a few moments answering our questions, and the wiki resources on the web, I figured it out.
There are some missing files in some android builds, like the AINOL NOVO 7 PALADIN. I think this would work in any ICS tablet with the same issue. I understand that the Galaxy Tab has the same issue but as I don't have one I can't confirm this. If you do, let me know if it works for you.
So lets push the files in and see how it goes.
Copy some missing files into system drive:
$ adb remount
$ adb push AINOL_FIX/system/etc/permissions/android.hardware.usb.host.xml /system/etc/permissions
$ adb push AINOL_FIX/system/etc/permissions/android.hardware.usb.accessory.xml /system/etc/permissions
NOTE: If an error appears displaying Out of Memory, it's right and you must delete some files from system drive. I recommend some live wallpapers from system/app.
I understand that for writing system drive you should have root access, I already had it when I did this so if it doesn't work, root it.
You can get the files from android source builds or from a tablet where USB-HOST API is actually working. I got them from linaro's ICS build for pandaboard.
Now, you should try finding those files but for Gingerbread and you'll also need to push the
future.usb.accesory.jar into system/framework, if it isn't there already.
$ adb push AINOL_FIX/system/framework/com.android.future.usb.accessory.jar /system/framework
A cite from http://developer.android.com/guide/topics/usb/accessory.html: "Set the minimum SDK of the application to API Level 10 if you are using the add-on library or 12 if you are using the android.hardware.usb package."
You are using the android.hardware.usb package. So, you have to put the version to 12.
An error is found :-)
And don't forget to really change SDK version to 12, not only declare it!
Use com.android.future.usb package instead, according to docs.