Skip to content

Commit c96df60

Browse files
committed
Possible repro for #455
See #455 for overall scenario. These minimal-ish changes cause the following stack trace if you launch the basic app and click on the "fizz" button. ``` 05-26 13:32:58.269 1150 1178 E ActivityControllerCore: java.lang.NoSuchMethodError: No virtual method convert(Ljava/time/Duration;)J in class Ljava/util/concurrent/TimeUnit; or its super cl asses (declaration of 'java.util.concurrent.TimeUnit' appears in /apex/com.android.art/javalib/core-oj.jar) 05-26 13:32:58.269 1150 1178 E ActivityControllerCore: at com.basicapp.basicdep.BasicDep.toLong(Unknown Source:4) 05-26 13:32:58.269 1150 1178 E ActivityControllerCore: at com.basicapp.basicdep.BasicDep.toString(Unknown Source:0) 05-26 13:32:58.269 1150 1178 E ActivityControllerCore: at com.basicapp.BasicActivity$1.onClick(Unknown Source:35) 05-26 13:32:58.269 1150 1178 E ActivityControllerCore: at android.view.View.performClick(View.java:7448) 05-26 13:32:58.269 1150 1178 E ActivityControllerCore: at android.view.View.performClickInternal(View.java:7425) 05-26 13:32:58.269 1150 1178 E ActivityControllerCore: at android.view.View.access$3600(View.java:810) 05-26 13:32:58.269 1150 1178 E ActivityControllerCore: at android.view.View$PerformClick.run(View.java:28305) 05-26 13:32:58.269 1150 1178 E ActivityControllerCore: at android.os.Handler.handleCallback(Handler.java:938) 05-26 13:32:58.269 1150 1178 E ActivityControllerCore: at android.os.Handler.dispatchMessage(Handler.java:99) 05-26 13:32:58.269 1150 1178 E ActivityControllerCore: at android.os.Looper.loop(Looper.java:223) 05-26 13:32:58.269 1150 1178 E ActivityControllerCore: at android.app.ActivityThread.main(ActivityThread.java:7656) 05-26 13:32:58.269 1150 1178 E ActivityControllerCore: at java.lang.reflect.Method.invoke(Native Method) 05-26 13:32:58.269 1150 1178 E ActivityControllerCore: at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592) 05-26 13:32:58.269 1150 1178 E ActivityControllerCore: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947) ``` Repro command: ``` bazelisk build java/com/basicapp:basic_app --nodesugar_java8_libs && \ adb install bazel-bin/java/com/basicapp/basic_app.apk && \ adb logcat ```
1 parent 71ea32a commit c96df60

3 files changed

Lines changed: 44 additions & 1 deletion

File tree

examples/basicapp/java/com/basicapp/BUILD

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,33 @@ load(
44
"android_library",
55
"android_application",
66
)
7+
load("@rules_java//java:java_library.bzl", "java_library")
8+
9+
genrule(
10+
name = "proguard_cfg",
11+
outs = ["proguard.cfg"],
12+
cmd = "echo > $@",
13+
)
714

815
android_binary(
916
name = "basic_app",
1017
manifest = "AndroidManifest.xml",
1118
deps = [":basic_lib"],
19+
proguard_specs = [":proguard_cfg"],
1220
)
1321

1422
android_library(
1523
name = "basic_lib",
1624
srcs = ["BasicActivity.java"],
1725
manifest = "AndroidManifest.xml",
1826
resource_files = glob(["res/**"]),
27+
deps = [":basic_dep"],
28+
)
29+
30+
java_library(
31+
name = "basic_dep",
32+
srcs = ["BasicDep.java"],
33+
# manifest = "AndroidManifest.xml",
1934
)
2035

2136
android_application(

examples/basicapp/java/com/basicapp/BasicActivity.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@
2020
import android.view.View;
2121
import android.widget.Button;
2222
import android.widget.TextView;
23+
import com.basicapp.basicdep.BasicDep;
24+
import java.time.Duration;
2325

2426
/**
2527
* The main activity of the Basic Sample App.
@@ -41,7 +43,8 @@ protected void onCreate(Bundle savedInstanceState) {
4143
public void onClick(View v) {
4244
TextView tv = findViewById(R.id.text_hello);
4345
if (v.getId() == R.id.button_id_fizz) {
44-
tv.setText("fizz");
46+
BasicDep bd = new BasicDep(Duration.ofMillis(System.currentTimeMillis()));
47+
tv.setText("fizz" + bd.toString());
4548
} else if (v.getId() == R.id.button_id_buzz) {
4649
tv.setText("buzz");
4750
}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package com.basicapp.basicdep;
2+
3+
import java.time.Duration;
4+
import java.util.concurrent.TimeUnit;
5+
6+
public class BasicDep {
7+
Duration d;
8+
public BasicDep(Duration d_) {
9+
this.d = d_;
10+
}
11+
public BasicDep() {
12+
this(Duration.ZERO);
13+
}
14+
public Duration getDuration() {
15+
return this.d;
16+
}
17+
public String toString() {
18+
// return this.d.toString();
19+
return Long.toString(this.toLong());
20+
}
21+
public long toLong() {
22+
// return TimeUnit.MILLISECONDS.convert(this.d.toMillis(), TimeUnit.MILLISECONDS);
23+
return TimeUnit.MILLISECONDS.convert(this.d);
24+
}
25+
}

0 commit comments

Comments
 (0)