gpt4 book ai didi

android - 如何使用谷歌应用引擎从安卓设备访问本地主机?

转载 作者:行者123 更新时间:2023-11-30 02:27:25 25 4
gpt4 key购买 nike

我正在使用 Android Studio 并尝试使用 google app engine 从 android 设备访问 local host。我遵循了这个 link .现在他们展示的是它与 genymotion 一起工作得很好。现在当我尝试使用 android 设备时它没有工作。我读了这个 post并在我的运行配置中,在 VM Args 中将其作为

--地址=0.0.0.0
但是当我尝试运行后端服务器时,它给了我一些错误。

Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
Unrecognized option: --address=0.0.0.0

现在我有了我的 SignUp 类,我可以在其中与服务器通信。

public class SignUp_Endpoint_Communicator extends AsyncTask <Pair<Context, UserinfoModel>, Void, ResponseMessages> {
private Context maincontext;
private UserinfoModelApi userinfo_api;
private UserinfoModel userdata;
private manipulate_Signup ms;
@Override
protected ResponseMessages doInBackground(Pair<Context, UserinfoModel>... params) {
if(userinfo_api == null) { // Only do this once
UserinfoModelApi.Builder builder = new UserinfoModelApi.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/")
.setRootUrl("http://0.0.0.0:8080/_ah/api/")
.setGoogleClientRequestInitializer(new GoogleClientRequestInitializer() {
@Override
public void initialize(AbstractGoogleClientRequest<?> abstractGoogleClientRequest) throws IOException {
abstractGoogleClientRequest.setDisableGZipContent(true);
}
});
// end options for devappserver

userinfo_api = builder.build();
}
maincontext = params[0].first;
userdata = params[0].second;

try {
ResponseMessages response = new ResponseMessages();
response = userinfo_api.setUserInfo(userdata).execute();
return response;
}
catch (IOException e)
{
e.printStackTrace();
return null;
}
}

protected void onPostExecute(ResponseMessages response){
ms = (manipulate_Signup) ((Activity) maincontext);
ms.setResponseMessage(response);
}

public interface manipulate_Signup{
public void setResponseMessage(ResponseMessages response);
}
}

我还需要更改其他任何东西才能在 Android 设备上使用它吗??

最佳答案

我通过执行以下操作使它在 Android Studio 中工作:

  1. 在创建您的 Builder 时,将“rootUrl”的默认“10.0.2.2”IP 地址替换为您的本地 IP 地址(我的是下面的 192.168.1.222)。

例如:

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
// - 192.168.1.222 is my machine's IP address on my local network.
// - turn off compression when running against local devappserver
.setRootUrl("http://192.168.1.222:8080/_ah/api/")
.setGoogleClientRequestInitializer(new GoogleClientRequestInitializer() {
@Override
public void initialize(AbstractGoogleClientRequest<?> abstractGoogleClientRequest) throws IOException {
abstractGoogleClientRequest.setDisableGZipContent(true);
}
});
  1. 为您的 Appengine 后端模块编辑运行配置:

    • Run->Edit Configurations,选择您的 AppEngine 配置。
    • 取消选中“与 build.gradle 配置同步”。
    • 将“服务器地址”更改为 0.0.0.0
  2. 重新运行您的 Appengine 模块。

我四处走动,试图让它发挥作用,所以我希望它能为其他人节省一些时间。谷歌的文档似乎并没有说明这一点。

关于android - 如何使用谷歌应用引擎从安卓设备访问本地主机?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27755234/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com