मुझे अपनी प्रोजेक्ट में समस्या है, जहां मैं एंड्रॉइड के साथ Google क्लाउड एंडपॉइंट्स को कनेक्ट करना चाहता हूं। मैं अब भी वही त्रुटि हो रही है:एंड्रॉइड में एंडपॉइंट्स के साथ त्रुटि: GoogleAuthIOException
05-12 21:50:23.995: W/System.err(17739): com.google.api.client.googleapis.extensions.android.gms.auth.GoogleAuthIOException
05-12 21:50:23.995: W/System.err(17739): at com.google.api.client.googleapis.extensions.android.gms.auth.GoogleAccountCredential$RequestHandler.intercept(GoogleAccountCredential.java:224)
05-12 21:50:24.000: W/System.err(17739): at com.google.api.client.http.HttpRequest.execute(HttpRequest.java:888)
05-12 21:50:24.000: W/System.err(17739): at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:407)
05-12 21:50:24.000: W/System.err(17739): at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.executeUnparsed(AbstractGoogleClientRequest.java:340)
05-12 21:50:24.000: W/System.err(17739): at com.google.api.client.googleapis.services.AbstractGoogleClientRequest.execute(AbstractGoogleClientRequest.java:458)
05-12 21:50:24.000: W/System.err(17739): at com.example.endpointstutorial_android.MainActivity$QueryScoresTask.doInBackground(MainActivity.java:74)
05-12 21:50:24.005: W/System.err(17739): at com.example.endpointstutorial_android.MainActivity$QueryScoresTask.doInBackground(MainActivity.java:1)
05-12 21:50:24.005: W/System.err(17739): at android.os.AsyncTask$2.call(AsyncTask.java:287)
05-12 21:50:24.005: W/System.err(17739): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
05-12 21:50:24.005: W/System.err(17739): at java.util.concurrent.FutureTask.run(FutureTask.java:137)
05-12 21:50:24.005: W/System.err(17739): at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
05-12 21:50:24.005: W/System.err(17739): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
05-12 21:50:24.005: W/System.err(17739): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
05-12 21:50:24.005: W/System.err(17739): at java.lang.Thread.run(Thread.java:856)
05-12 21:50:24.005: W/System.err(17739): Caused by: com.google.android.gms.auth.GoogleAuthException: Unknown
05-12 21:50:24.005: W/System.err(17739): at com.google.android.gms.auth.GoogleAuthUtil.getToken(Unknown Source)
05-12 21:50:24.005: W/System.err(17739): at com.google.api.client.googleapis.extensions.android.gms.auth.GoogleAccountCredential.getToken(GoogleAccountCredential.java:192)
05-12 21:50:24.010: W/System.err(17739): at com.google.api.client.googleapis.extensions.android.gms.auth.GoogleAccountCredential$RequestHandler.intercept(GoogleAccountCredential.java:217)
05-12 21:50:24.010: W/System.err(17739): ... 13 more`
मेरे Android कोड:
public class MainActivity extends Activity {
private static final String PREF_ACCOUNT_NAME = "pref.account.name";
public static final String AUDIENCE = "server:client_id:660102392535.apps.googleusercontent.com";
SharedPreferences settings;
GoogleAccountCredential credential;
String accountName;
static final int REQUEST_ACCOUNT_PICKER = 2;
Myendpoint service;
void chooseAccount() {
startActivityForResult(credential.newChooseAccountIntent(),
REQUEST_ACCOUNT_PICKER);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
credential = GoogleAccountCredential
.usingAudience(
this,AUDIENCE);
settings = getSharedPreferences("SafeAndroid", 0);
setAccountName(settings.getString(PREF_ACCOUNT_NAME, null));
Myendpoint.Builder builder = new Myendpoint.Builder(
AndroidHttp.newCompatibleTransport(), new GsonFactory(),
credential);
service = builder.build();
if (credential.getSelectedAccountName() != null) {
Toast.makeText(getApplicationContext(),
"logged as: " + credential.getSelectedAccountName(), 5000)
.show();
sendRequest();
} else {
chooseAccount();
}
}
private class QueryScoresTask extends AsyncTask<Void, Void, Void> {
Context context;
public QueryScoresTask(Context context) {
this.context = context;
}
protected Void doInBackground(Void... unused) {
Log.v("AAAAA", "2");
try {
MyEntity e = service.myentity().get().execute();
Log.v("AAAAA", e.toString() + "");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
}
private void setAccountName(String accountName) {
SharedPreferences.Editor editor = settings.edit();
editor.putString(PREF_ACCOUNT_NAME, accountName);
editor.commit();
credential.setSelectedAccountName(accountName);
this.accountName = accountName;
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
switch (requestCode) {
case REQUEST_ACCOUNT_PICKER:
if (data != null && data.getExtras() != null) {
String accountName = data.getExtras().getString(
AccountManager.KEY_ACCOUNT_NAME);
if (accountName != null) {
setAccountName(accountName);
SharedPreferences.Editor editor = settings.edit();
editor.putString(PREF_ACCOUNT_NAME, accountName);
editor.commit();
Toast.makeText(
getApplicationContext(),
"logged as: " + credential.getSelectedAccountName(),
5000).show();
sendRequest();
}
}
break;
}
}
private void sendRequest() {
QueryScoresTask a = new QueryScoresTask(this);
a.execute();
}
}
और मेरे endpoint कोड:
@Api(name = "myendpoint", version = "v1",description = "This retrieves an instance of MyEntity.", clientIds = {
"660102392535.apps.googleusercontent.com", "660102392535-dobseln3gde8e6lqnd2v80l3oh6mm1nh.apps.googleusercontent.com" }, audiences = { "660102392535.apps.googleusercontent.com" })
public class MyEndpoint {
@ApiMethod(httpMethod = "GET", name = "myentity.get", path = "myentity/get")
public MyEntity getEntity(User user) {
MyBusinessClass myBusinessClass = new MyBusinessClass();
MyEntity myEntity = myBusinessClass.getMyEntity();
DatastoreService datastore = DatastoreServiceFactory.getDatastoreService();
Entity device = new Entity("gcmid", "keyname");
device.setProperty("account", user.getEmail());
device.setProperty("device", "idtelefonu1");
datastore.put(device);
return myEntity;
}
}
मैंने पढ़ा है कि कुछ लोगों को लगता है कि समस्या थी, लेकिन किया इसे हल करने के लिए मत लिखो। मैंने नई डीबग.की बनाई और नया sha1 प्राप्त किया लेकिन काम नहीं किया। नए पैकेज के साथ नई एंड्रॉइड प्रोजेक्ट बनाने की भी कोशिश की - काम नहीं किया।
hellow @ user1262348 मुझे एक ही समस्या है क्योंकि आपको एंड्रॉइड में एंडपॉइंट्स के साथ त्रुटि मिलती है: GoogleAuthIOException अगर आपको कोई समाधान मिलता है तो कृपया मेरी मदद करें। –