gpt4 book ai didi

android - ADT18,App Engine Connected Android 项目和 noclassdefounderror

转载 作者:搜寻专家 更新时间:2023-11-01 08:10:18 25 4
gpt4 key购买 nike

免责声明...我认为我已经阅读了关于该主题的所有相关帖子,但到目前为止,它们都没有解决我的问题。话虽如此,如果我遗漏了什么,请随时为我指出正确的方向。

环境:

-新配置的Eclipse Indigo

-ADT 18

-GWT 2.4

-应用引擎 SDK 1.6.4

我正在尝试创建一个标准的、简洁的样板文件“App Engine Connected Android Project”,以开始了解 App Engine 和 Android 之间的处理方式。

完成文件 > 新建 > App Engine Connected Android 项目(具有功能性 C2DM 角色电子邮件和密码)后,我在 Eclipse 中获得了 MyTasks-Android 和 MyTasks-AppEngine 项目。

了解 ADT17+ 的整个 lib 与 libs 问题后,我将 MyTasks-Android 项目中的 lib 文件夹更改为 libs 并更新三个 jar(c2dm.jar、requestfactory-client.jar 和 validation-api- 1.0.0.GA.jar)。我还将 MyTasks-AppEngine 项目添加到构建路径。

完成后,我尝试在我的设备上运行 App-Android 项目。

我可以选择我的 Android 帐户,“允许”它访问我的帐户,然后我看到“问好”按钮。单击按钮后,我在 Eclipse 中收到以下错误:

05-01 22:13:22.965: E/dalvikvm(17457): Could not find class 'com.mytasks.client.MyRequestFactory', referenced from method com.mytasks.MyTasksActivity$2$1.doInBackground
05-01 22:13:22.965: W/dalvikvm(17457): VFY: unable to resolve const-class 315 (Lcom/mytasks/client/MyRequestFactory;) in Lcom/mytasks/MyTasksActivity$2$1;
05-01 22:13:22.965: D/dalvikvm(17457): VFY: replacing opcode 0x1c at 0x000a
05-01 22:13:22.973: W/dalvikvm(17457): threadid=11: thread exiting with uncaught exception (group=0x40a291f8)
05-01 22:13:22.989: E/AndroidRuntime(17457): FATAL EXCEPTION: AsyncTask #1
05-01 22:13:22.989: E/AndroidRuntime(17457): java.lang.RuntimeException: An error occured while executing doInBackground()
05-01 22:13:22.989: E/AndroidRuntime(17457): at android.os.AsyncTask$3.done(AsyncTask.java:278)
05-01 22:13:22.989: E/AndroidRuntime(17457): at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273)
05-01 22:13:22.989: E/AndroidRuntime(17457): at java.util.concurrent.FutureTask.setException(FutureTask.java:124)
05-01 22:13:22.989: E/AndroidRuntime(17457): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307)
05-01 22:13:22.989: E/AndroidRuntime(17457): at java.util.concurrent.FutureTask.run(FutureTask.java:137)
05-01 22:13:22.989: E/AndroidRuntime(17457): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
05-01 22:13:22.989: E/AndroidRuntime(17457): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
05-01 22:13:22.989: E/AndroidRuntime(17457): at java.lang.Thread.run(Thread.java:856)
05-01 22:13:22.989: E/AndroidRuntime(17457): Caused by: java.lang.NoClassDefFoundError: com.mytasks.client.MyRequestFactory
05-01 22:13:22.989: E/AndroidRuntime(17457): at com.mytasks.MyTasksActivity$2$1.doInBackground(MyTasksActivity.java:145)
05-01 22:13:22.989: E/AndroidRuntime(17457): at com.mytasks.MyTasksActivity$2$1.doInBackground(MyTasksActivity.java:1)
05-01 22:13:22.989: E/AndroidRuntime(17457): at android.os.AsyncTask$2.call(AsyncTask.java:264)
05-01 22:13:22.989: E/AndroidRuntime(17457): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)

到目前为止,我一直在为此工作一整天,但运气不佳。因此,如果有人有任何建议,我将不胜感激。

谢谢!

编辑 - 2012 年 5 月 2 日 - 从 MyTasksActivity 类添加了 setHelloWorldScreenContent。具体来说,失败于:MyRequestFactory requestFactory = Util.getRequestFactory(mContext, MyRequestFactory.class);

同样,这是一个普通向导生成的 App Engine Connected Android 项目 - 我所做的唯一更改是将 MyTasks-AppEngine 添加到 MyTasks-Android 构建路径并将 lib 更改为 libs,然后将三个 jar 读取到构建中路径。

private void setHelloWorldScreenContent() {
setContentView(R.layout.hello_world);

final TextView helloWorld = (TextView) findViewById(R.id.hello_world);
final Button sayHelloButton = (Button) findViewById(R.id.say_hello);
sayHelloButton.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
sayHelloButton.setEnabled(false);
helloWorld.setText(R.string.contacting_server);

// Use an AsyncTask to avoid blocking the UI thread
new AsyncTask<Void, Void, String>() {
private String message;

@Override
protected String doInBackground(Void... arg0) {
MyRequestFactory requestFactory = Util.getRequestFactory(mContext, MyRequestFactory.class);
final HelloWorldRequest request = requestFactory.helloWorldRequest();
Log.i(TAG, "Sending request to server");
request.getMessage().fire(new Receiver<String>() {
@Override
public void onFailure(ServerFailure error) {
message = "Failure: " + error.getMessage();
}

@Override
public void onSuccess(String result) {
message = result;
}
});
return message;
}

@Override
protected void onPostExecute(String result) {
helloWorld.setText(result);
sayHelloButton.setEnabled(true);
}
}.execute();
}
});
}

最佳答案

我遇到了同样的问题。我还刚刚将文件夹名称从 lib 更改为 libs,并在 andorid 项目的构建路径中添加了 3 个 jar,它起作用了。

关于android - ADT18,App Engine Connected Android 项目和 noclassdefounderror,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10406957/

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