我已为我正在构建的Android应用编写并测试了一个Python端点服务器端。
编码服务器端在API Explorer上完美运行。我也能够生成包含类jar文件的zip,但是当我在Eclipse或Android Studio上导入它时,我无法在我的Android项目中使用它的类。
在Eclipse上,在Android私有库下,我可以看到模型模块,但没有看到它的类。主API类也缺失。
在Android Studio上,当我展开包含的jar文件时,我可以看到所有类,但是我无法在我的项目中使用任何类,因为它们无法解析,即使在手动导入之后也是如此。 AS似乎正在将JAR作为lib正确导入,因为在任何项目类上键入导入行时,自动完成工作,但它缺少所有类。
以下是我用来生成JAR文件的命令:
endpointscfg.py get_client_lib java --hostname localhost:8080 main.MyApi
我的服务类开头如下:
@endpoints.api(name='myapi', version='v1')
class MyApi(remote.Service):
我做错了什么?
另外,从java类zip文件中,我应该将libs目录中包含的所有jar文件导入到我的Android项目中吗?
提前致谢。
更多信息:
生成的jar包含一个主类,如下所示:
public class MyApi extends com.google.api.client.googleapis.services.json.AbstractGoogleJsonClient {
}
这个主类有以下内部类:
public class Blob {
public Request request(java.lang.String type) throws java.io.IOException {
Request result = new Request(type);
initialize(result);
return result;
}
内部类Blob在它的请求结果对象上有以下错误:
initialize (com.google.api.client.googleapis.services.AbstractGoogleClientRequest<?>) in MyApi cannot be applied to (com.appspot.trim_bot.myapi.MyApi.Blob.Request)
于4月16日添加:
似乎编译的EndPoints类无法解析它们的依赖关系。
答案 0 :(得分:0)
我遇到了类似的问题,我在做下面的工作。请注意,这可能不是最有效的方法。
答案 1 :(得分:0)
这里有一个更好的方法: How to create a library project in Android Studio and an application project that uses the library project
我使用了第3个答案。这里的方法是在Andriod Studio中打开压缩的端点库(让它称之为library1)并构建它。构建完成后,您可以修改正在处理的项目的gradle.settings,如下所示:
git remote add origin user@example.com:/path/to/git-repo
我要添加的唯一内容是,一旦正确完成(即,您可以将library1视为您正在处理的项目的项目文件夹结构中的第二个项目),您需要转到文件&gt;项目结构,然后单击您正在处理的模块的名称。然后转到依赖项选项卡&gt;点击&#39; +&#39;然后&#39;模块依赖&#39;在下拉菜单中。然后,您应该能够将library1模块添加到当前项目中。
希望能帮助别人!