![](/img/trans.png)
[英]Android support library appcompat v7: cannot find actionModeShareDrawable resource
[英]Android App Engine Module cannot find AppCompat Library
我最近在遵循本教程的同时向我的应用添加了App Engine模块:
https://cloud.google.com/appengine/docs/java/endpoints/helloendpoints-android-studio
我的EndpointsAsyncTask(在App Engine模块内部)如下所示:
import com.google.api.client.extensions.android.http.AndroidHttp;
import com.google.api.client.extensions.android.json.AndroidJsonFactory;
import com.google.api.client.googleapis.services.AbstractGoogleClientRequest;
import com.google.api.client.googleapis.services.GoogleClientRequestInitializer;
import com.google.appengine.repackaged.com.google.common.base.Pair;
import java.io.IOException;
import javax.naming.Context;
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();
}
}
我收到AsyncTask,.build()、. sayHi()和Toast的“无法解析符号/方法”错误,仅举几例。
我开始试图找出问题所在,然后意识到这些拍子的进口不存在。 因此,我捆绑添加:
import android.os.Bundle;
然后从那里进行。 但是,不幸的是,这些也给了我错误。
因此,我查看了build.gradle文件,发现没有AppCompat依赖项。
我对app引擎模块的build.gradle如下所示:
// If you would like more information on the gradle-appengine-plugin please refer to the github page
// https://github.com/GoogleCloudPlatform/gradle-appengine-plugin
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.google.appengine:gradle-appengine-plugin:1.9.34'
}
}
repositories {
jcenter()
}
apply plugin: 'java'
apply plugin: 'war'
apply plugin: 'appengine'
sourceCompatibility = JavaVersion.VERSION_1_7
targetCompatibility = JavaVersion.VERSION_1_7
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:25.0.1'
compile 'com.google.appengine:appengine-endpoints:1.9.34'
compile 'com.google.appengine:appengine-endpoints-deps:1.9.34'
compile 'javax.servlet:servlet-api:2.5'
compile 'com.google.http-client:google-http-client-android:1.20.0'
compile 'com.google.api-client:google-api-client:1.20.0'
appengineSdk 'com.google.appengine:appengine-java-sdk:1.9.34'
}
appengine {
downloadSdk = true
appcfg {
oauth2 = true
}
endpoints {
getClientLibsOnBuild = true
getDiscoveryDocsOnBuild = true
}
}
现在,在构建我的项目时会出现错误:
Error:(25, 13) Failed to resolve: com.android.support:appcompat-v7:25.0.1
我是否在App Engine模块的工作方式方面缺少某些东西,还是我的问题不是AppCompat? 在消息窗口中,它为我提供了“安装存储库并同步项目”选项,但是当我单击该按钮时,什么也没有发生。
任何帮助将不胜感激,谢谢!
好吧,我想我已经找出问题所在了。 我的EndpointsAsyncTask应该位于App模块中,而不是AppEngine中。 如果有人可以验证这一点,我将不胜感激!
我希望这对本教程可能会混淆的其他人有所帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.