从android studio 1.5迁移到2.0后我遇到了问题
在我的一个项目(只有一个)我不能使用android studio运行按钮,
因为那时,构建在gradle任务"transformClassesWithDexForDebug"上失败
有错误:
:app:transformClassesWithDexForDebug
AGPBI: {"kind":"error","text":"Uncaught translation error: com.android.dx.cf.code.SimException: local variable type mismatch: attempt to set or access a value of type java.lang.Object using a local variable of type int. This is symptomatic of .class transformation tools that ignore local variable information.","sources":[{}]}
AGPBI: {"kind":"error","text":"1 error; aborting","sources":[{}]}
FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':app:transformClassesWithDexForDebug'.
> com.android.build.api.transform.TransformException: java.lang.RuntimeException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/usr/lib/jvm/java-8-oracle/bin/java'' finished with non-zero exit …Run Code Online (Sandbox Code Playgroud) 谁能解释我为什么这样的代码:
networApi.getList()
.subscribeOn(Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread())
.doOnError(throwable -> {
throwable.getMessage();
})
.doOnNext(list -> {
coursesView.populateRecyclerView(list);
courseList = (List<Course>) courses;
}).subscribe();
Run Code Online (Sandbox Code Playgroud)
如果没有互联网进入doOnError但是进一步抛出它以便应用程序关闭,但代码如下:
networkApi.getList()
.subscribeOn(Schedulers.newThread())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Subscriber<List<? extends Course>>() {
@Override
public void onCompleted() {
}
@Override
public void onError(Throwable e) {
e.getMessage();
}
@Override
public void onNext(List<? extends Course> list) {
coursesView.populateRecyclerView(list);
courseList = (List<Course>) list;
}
});
Run Code Online (Sandbox Code Playgroud)
按照我的预期工作,这意味着当没有互联网连接时,它什么都不做.
我的应用程序中的 INSTALL_REFERRER 广播有问题。
我正在尝试创建一些有关广告系列等的信息,但在大多数设备上,我的网址为“ https://play.google.com/store/apps/details?id=com.test.apptest&referrer=utm_source%3Dmy_test_source ”
编辑:同样的事情发生在链接“market://details?id=com.test.apptest&referrer=utm_source%3Dmy_test_source”
是变成类似的东西
"utm_source=(not%20set)&utm_medium=(not%20set)"
我不知道 google play 商店应用程序出现这种行为的原因是什么,但也许有人已经解决了?
编辑 2:看起来它与 google play 商店应用程序版本有关。在 12.5.15 版上 - 一切正常,如预期的那样,在 12.5.30 版的设备上仅提供(未设置)
编辑 3:回答 Harry 的评论,我只有一封来自 google 开发人员支持的电子邮件。现在我用有效的firebase动态链接替换了引用链接(但不是utm_source,需要做你的自定义链接)
我想知道你在改造Rx onError时处理不同类型错误(如http异常,没有互联网连接异常等)的方法,而不使用instanceof像这里提到的那样:如何使用RxJava处理Retrofit 2中的网络错误或处理:处理错误在Retrofit 2 RX中
在kotlin中,我将简单地为每种throwable做一些扩展函数来做我想做的事情.
但是我被迫在项目中使用Java.有什么好建议吗?
是构建某种错误处理程序的方法,如下所示:
public interface ErrorHandler {
void handleError(Exception e);
void handleError(HttpException e);
void handleError(NullPointerException npe);
}
Run Code Online (Sandbox Code Playgroud)
好?我知道这不是因为每次我需要处理另一个特定的错误我被迫改变界面,所以它违反了Open Close Principle.但我无法找出任何解决方案.
欢呼Wojtek
迁移到AS 3.2之后,android JUnit测试运行配置不起作用,所有类型"All in directory","All in package"等等.我的意思是它确实有效,但总是声称:
0 test classes found in package '<default package>'
Process finished with exit code 254
Empty test suite.
Run Code Online (Sandbox Code Playgroud)
./gradlew test每次测试都使用触发器
并且每个测试都可以由AS使用编辑器内的绿色播放按钮运行(对于类或单个方法)
但不适用于包装,模块等
如何解决?
非常感谢
WOJTEK
android ×3
rx-java ×2
google-play ×1
gradle ×1
onerror ×1
retrofit ×1
retrofit2 ×1
rx-android ×1
subscriber ×1
unit-testing ×1