对于GoogleAppEngineClassNotPersistenceCapableException感兴趣的读者,本文将提供您所需要的所有信息,并且为您提供关于android-Robolectri
对于Google App Engine ClassNotPersistenceCapableException感兴趣的读者,本文将提供您所需要的所有信息,并且为您提供关于android-Robolectric 3 GooglePlayServicesNotAvailableException、AppEngine ClassNotFoundException:com.google.appengine.api.datastore.DatastoreServiceFactory、Caused by: java.lang.ClassNotFoundException: com.google.protobuf.ServiceException、ClassCastException: java.util.TreeMap$Entry cannot be cast to java.lang.Comparable的宝贵知识。
本文目录一览:- Google App Engine ClassNotPersistenceCapableException
- android-Robolectric 3 GooglePlayServicesNotAvailableException
- AppEngine ClassNotFoundException:com.google.appengine.api.datastore.DatastoreServiceFactory
- Caused by: java.lang.ClassNotFoundException: com.google.protobuf.ServiceException
- ClassCastException: java.util.TreeMap$Entry cannot be cast to java.lang.Comparable
Google App Engine ClassNotPersistenceCapableException
我有以下课程:
import javax.jdo.annotations.IdGeneratorStrategy;import javax.jdo.annotations.IdentityType;import javax.jdo.annotations.PersistenceCapable;import javax.jdo.annotations.Persistent;import javax.jdo.annotations.PrimaryKey;import com.google.appengine.api.datastore.*;@PersistenceCapable(identityType=IdentityType.APPLICATION)public class PayPal_Message{ @PrimaryKey @Persistent(valueStrategy=IdGeneratorStrategy.IDENTITY) private Long id; @Persistent private Text content; @Persistent private String time; public PayPal_Message(Text content,String time) { this.content=content; this.time=time; } public Long getId() { return id; } public Text getContent() { return content; } public String getTime() { return time; } public void setContent(Text content) { this.content=content; } public void setTime(String time) { this.time=time; }}
它曾经在一个包中,并且工作正常,现在我将所有类都放在默认包中,这导致了我这个错误:
org.datanucleus.jdo.exceptions.ClassNotPersistenceCapableException:类““
PayPal_Message”类不是可持久的。这意味着它要么没有得到增强,要么文件的增强版本不在CLASSPATH中(或被隐藏。增强版本),或找不到该类的元数据/注释。”
不持久。这意味着它要么没有得到增强,要么文件的增强版本不在CLASSPATH中(或被未增强的版本隐藏),或者找不到该类的元数据。NestedThrowables:org.datanucleus.exceptions.ClassNotPersistableException:类“
PayPal_Message”不可持久。这意味着它要么没有得到增强,要么文件的增强版本不在CLASSPATH中(或者被未增强的版本隐藏了),
我该怎么解决?
答案1
小编典典说明:默认软件包中的类对于软件包中的类不可见/不可导入。
请尝试以下示例:
public class Entity {}
(因此不带包装!)和
package persistence;public class EntityManager { public static void main(String... args) { Entity entity = new Entity(); }}
它行得通吗?没有?您将如何导入它?这就是幕后发生的问题!
android-Robolectric 3 GooglePlayServicesNotAvailableException
我刚刚开始使用Robolectric,想知道如何解决Google Play服务.我正在使用Robolectric 3 RC2,而我的成绩如下:
build.bradle
compile 'com.squareup.okhttp:okhttp:2.3.0'
compile 'com.google.android.gms:play-services:7.0.0'
testCompile ("org.robolectric:robolectric:3.0-rc2"){
exclude module: 'commons-logging'
exclude module: 'httpclient'
}
testCompile ("org.robolectric:shadows-play-services:3.0-rc2"){
exclude module: 'commons-logging'
exclude module: 'httpclient'
}
testCompile 'com.squareup.okhttp:mockwebserver:1.2.1'
我正在从项目中运行一种方法,以从API获取json.调用时,我会传递广告ID:
AdvertisingIdClient.Info adInfo = null;
try {
adInfo = AdvertisingIdClient.getAdvertisingIdInfo(mContext);
} catch (IOException |
GooglePlayServicesNotAvailableException |
GooglePlayServicesRepairableException e) {
// Unrecoverable error connecting to Google Play services (e.g.,
// the old version of the service doesn't support getting AdvertisingId).
e.printstacktrace();
}
我测试的主要部分是:
@Test(timeout = 7000)
public void jsonLoading() {
try {
client.loadData(this);
} catch (Exception e){
ex = e;
}
assertNull(ex);
//wait for task code
ShadowApplication.runBackgroundTasks();
每次运行测试时,我都会收到GooglePlayServicesNotAvailableException(来自e.printstacktrace();),并且无法解决它并断言它,因此测试将无法通过.
我还没有找到调试我的代码的任何线索.
解决方法:
前几天我碰到了这个.
采用:
testCompile 'org.robolectric:shadows-play-services:3.0'
testCompile 'org.robolectric:shadows-support-v4:3.0'
并查看以下示例:
public class TestBase {
@Before
public void setUp() throws Exception {
// Turn off Google Analytics - Does not need to work anymore
final ShadowApplication shadowApplication = Shadows.shadowOf(RuntimeEnvironment.application);
shadowApplication.declareActionUnbindable("com.google.android.gms.analytics.service.START");
// Force success
ShadowGooglePlayServicesUtil.setIsGooglePlayServicesAvailable(ConnectionResult.SUCCESS);
}
@After
public void tearDown() throws Exception {
}
}
public MyTestClass extends TestBase {
}
AppEngine ClassNotFoundException:com.google.appengine.api.datastore.DatastoreServiceFactory
当我尝试在AppEngine中使用低级DataStore
API时,我得到了一个有趣的东西ClassNotFoundException
。此异常发生在云服务器中,而不是在本地实例中。我在本地使用appengine-java-sdk-1.7.4
。
java.lang.NoClassDefFoundError: com/google/appengine/api/datastore/DatastoreServiceFactory at org.himadri.scradiolisteners.server.FetchingServlet.writeDataLowLevel(FetchingServlet.java:47) at org.himadri.scradiolisteners.server.FetchingServlet.doGet(FetchingServlet.java:39) at javax.servlet.http.HttpServlet.service(HttpServlet.java:617) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166) at com.google.apphosting.utils.servlet.ParseBlobUploadFilter.doFilter(ParseBlobUploadFilter.java:102) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) at com.google.apphosting.runtime.jetty.SaveSessionFilter.doFilter(SaveSessionFilter.java:35) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) at com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:43) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388) at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182) at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765) at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418) at com.google.apphosting.runtime.jetty.AppVersionHandlerMap.handle(AppVersionHandlerMap.java:266) at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) at org.mortbay.jetty.Server.handle(Server.java:326) at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542) at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:923) at com.google.apphosting.runtime.jetty.RpcRequestParser.parseAvailable(RpcRequestParser.java:76) at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) at com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java:146) at com.google.apphosting.runtime.JavaRuntime$RequestRunnable.run(JavaRuntime.java:447) at com.google.tracing.TraceContext$TraceContextRunnable.runInContext(TraceContext.java:454) at com.google.tracing.TraceContext$TraceContextRunnable$1.run(TraceContext.java:461) at com.google.tracing.TraceContext.runInContext(TraceContext.java:703) at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContextNoUnref(TraceContext.java:338) at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContext(TraceContext.java:330) at com.google.tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:458) at com.google.apphosting.runtime.ThreadGroupPool$PoolEntry.run(ThreadGroupPool.java:251) at java.lang.Thread.run(Thread.java:679)Caused by: java.lang.ClassNotFoundException: com.google.appengine.api.datastore.DatastoreServiceFactory at com.google.appengine.runtime.Request.process-e485d13152ebc944(Request.java) at java.lang.ClassLoader.loadClass(ClassLoader.java:266) at org.himadri.scradiolisteners.server.FetchingServlet.writeDataLowLevel(FetchingServlet.java:47) at org.himadri.scradiolisteners.server.FetchingServlet.doGet(FetchingServlet.java:39) at javax.servlet.http.HttpServlet.service(HttpServlet.java:617) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388) at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182) at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765) at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418) at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) at org.mortbay.jetty.Server.handle(Server.java:326) at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542) at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:923) at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) at com.google.tracing.TraceContext$TraceContextRunnable.runInContext(TraceContext.java:454) at com.google.tracing.TraceContext$TraceContextRunnable$1.run(TraceContext.java:461) at com.google.tracing.TraceContext.runInContext(TraceContext.java:703) at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContextNoUnref(TraceContext.java:338) at com.google.tracing.TraceContext$AbstractTraceContextCallback.runInInheritedContext(TraceContext.java:330) at com.google.tracing.TraceContext$TraceContextRunnable.run(TraceContext.java:458) ... 1 more
答案1
小编典典听起来对我来说是两件事之一。
1:您正在尝试在单元测试中运行GAE代码,在这种情况下,您需要使用此页面中指定的代码。
2:您没有将所有必需的jar添加到类路径中。
Caused by: java.lang.ClassNotFoundException: com.google.protobuf.ServiceException
@杨桃兄弟 你好,想跟你请教个问题:
<dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-client</artifactId> <version>2.7.2</version> <!-- <version>2.2.0</version>--> </dependency> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-common</artifactId> <version>2.7.2</version> </dependency> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-hdfs</artifactId> <version>2.7.2</version> </dependency> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-mapreduce-client-core</artifactId> <version>2.7.2</version> </dependency>
我pom 文件里的,一直报这个错
ClassCastException: java.util.TreeMap$Entry cannot be cast to java.lang.Comparable
Exception in thread "main" java.lang.ClassCastException: java.util.TreeMap$Entry cannot be cast to java.lang.Comparableat java.util.TreeMap.getEntry(TreeMap.java:349)
at java.util.TreeMap.get(TreeMap.java:278)
at cn.qjj.business.WeiboBus.main(WeiboBus.java:394)
今天关于Google App Engine ClassNotPersistenceCapableException的讲解已经结束,谢谢您的阅读,如果想了解更多关于android-Robolectric 3 GooglePlayServicesNotAvailableException、AppEngine ClassNotFoundException:com.google.appengine.api.datastore.DatastoreServiceFactory、Caused by: java.lang.ClassNotFoundException: com.google.protobuf.ServiceException、ClassCastException: java.util.TreeMap$Entry cannot be cast to java.lang.Comparable的相关知识,请在本站搜索。
本文标签: