저는 Google의 Cloud Platform을 처음 사용하고 Android 기기에 설정하는 데 문제가 있습니다. 이 튜토리얼 을 따르려고 시도하고 있으며 Android 에뮬레이터로 백엔드를 테스트하려고합니다. 그러나 에뮬레이터는 20 초 후에이 메시지를 표시 합니다. 대신에 내 이름 이 표시 되어야합니다. 지금까지 내 코드는 다음과 같습니다.
MainActivity.java
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
buildUI();
new EndpointsAsyncTask().execute(new Pair<Context, String>(this, "Solomon"));
}
EndpointsAsyncTask.java
public class EndpointsAsyncTask extends AsyncTask<Pair<Context, String>, Void, String> {
private static MyApi myApiService = null;
private Context context;
@Override
protected String doInBackground(Pair<Context, String>... params) {
if(myApiService == null) { // Only do this once
MyApi.Builder builder = new MyApi.Builder(AndroidHttp.newCompatibleTransport(),
new AndroidJsonFactory(), null)
// options for running against local devappserver
// - 10.0.2.2 is localhost's IP address in Android emulator
// - turn off compression when running against local devappserver
.setRootUrl("http://10.0.2.2:8080/_ah/api/")
.setGoogleClientRequestInitializer(new GoogleClientRequestInitializer() {
@Override
public void initialize(AbstractGoogleClientRequest<?> abstractGoogleClientRequest) throws IOException {
abstractGoogleClientRequest.setDisableGZipContent(true);
}
});
// end options for devappserver
myApiService = builder.build();
}
context = params[0].first;
String name = params[0].second;
try {
return myApiService.sayHi(name).execute().getData();
} catch (IOException e) {
return e.getMessage();
}
}
@Override
protected void onPostExecute(String result) {
Toast.makeText(context, result, Toast.LENGTH_LONG).show();
}
}
모든 도움에 감사드립니다!
편집 : 문제의 일부는 App Engine 서블릿 백엔드가 아닌 Endpoints 백엔드를 실행하고 있다는 것입니다. 하지만 이제는 "연결이 거부되었습니다"라는 메시지가 표시되고 App Engine 서블릿 백엔드를 실행하고 있습니다. 어떤 아이디어?
힘든 며칠 후 rootUrl http://10.0.2.2:8080/_ah/api/
을 내 appspot 도메인 으로 변경해야한다는 문제를 발견했습니다 . 이제 Hello World 메시지를 받았습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다