相关疑难解决方法(0)

如何在Gradle中指定类路径排序

我需要在testRuntime配置中控制jar的顺序.

我必须确保robolectric-xxjar在android.jar之前,否则我得到了可怕的RuntimeException("Stub!").

我怎么做?

unit-testing gradle robolectric

12
推荐指数
1
解决办法
9351
查看次数

Android - java.lang.RuntimeException:将String解析为JSONObject时发生Stub异常

我得到java.lang.RuntimeException: Stub!异常,当我尝试解析Stringorg.json.JSONObject.我的Android API版本是19.

这是我的String解析:

{
    "url": "http://www.google.com",
    "cookie": "012121",
    "filename": "Google"
}


JSONObject jsonObject = new JSONObject(str); // getting exception at this line
String url = jsonObject.getString("url");
Run Code Online (Sandbox Code Playgroud)

java android json android-json

5
推荐指数
1
解决办法
8269
查看次数

我可以使用 Gradle 在我的类路径中强制依赖的顺序吗?

一个项目在 Google App Engine 上运行。该项目的依赖项使用了由于安全限制而无法在 App Engine 上调用的类(它不在白名单中)。我的(非常hacky)解决方案是将该类的修改版本复制到我的项目中(匹配原始类的名称和包),不需要受限类。这适用于 dev 和 live,我假设是因为我的源出现在我的外部依赖项之前的类路径中。

为了使它更简洁,我决定将该类的修改版本放入它自己的项目中,该项目可以打包在一个 jar 中并发布给其他任何遇到此问题的人使用。

这是我的 build.gradle:

// my jar that has 'fixed' version of Class.
compile files('path/to/my-hack-0.0.1.jar')

// dependency that includes class that won't run on appengine
compile 'org.elasticsearch:elasticsearch:1.4.4'
Run Code Online (Sandbox Code Playgroud)

在我的本地开发服务器上,这工作正常,代码在运行时首先找到我的类的黑客版本。在直播中,由于某些未知原因,首先加载 elasticsearch 依赖项中的版本。

我知道在类路径中拥有同一个类的两个版本并不理想,但我希望我可以可靠地强制我的版本位于类路径的开头。有任何想法吗?或者,有没有更好的方法来解决这个问题?

java google-app-engine classpath dependency-management gradle

4
推荐指数
2
解决办法
1万
查看次数