这里我想在5秒后调用一个类。所以,我创建了一个类,我的json数据就在那里。
但问题是当我在API 5.0或更高版本中运行我的应用程序时崩溃,但同样的应用程序在5.0以下运行它可以正常工作。
这是我调用类的线程方法。
public void callAsynchronousTask() {
final Handler handler = new Handler();
timer = new Timer();
TimerTask doAsynchronousTask = new TimerTask() {
@Override
public void run() {
handler.post(new Runnable() {
public void run() {
cnt++;
if (!IsStopUpdateMethod) {
try{
new SummaryCardJson().execute();//here i am going to get an error
}
catch (IllegalStateException e){
e.printStackTrace();
}
else {
timer.cancel();
finish();
}
// } catch (Exception e) {
// // TODO Auto-generated catch block
// }
}
});
}
};
timer.schedule(doAsynchronousTask, 0, 5000); //execute in every 50000 ms
}
此处summarycardjson扩展了AsyncTastk
类。
这是我在SummaryCard活动
下定义的SummaryCardJson类private class SummaryCardJson extends AsyncTask<String,String,String>{
@Override
protected String doInBackground(String... params) {
jsonStr=new CallAPI().GetResponseGetMethod(url1);
try{
JSONObject obj=new JSONObject(jsonStr);
JSONObject data=obj.getJSONObject("data");
JSONObject card=data.getJSONObject("card");
JSONObject now=card.getJSONObject("now");
JSONObject teams=card.getJSONObject("teams");
JSONArray teams_arr=teams.names();
if(card.has("man_of_match")){
if(!card.getString("man_of_match").isEmpty() || !card.getString("man_of_match").isEmpty()){
mom="MOM: "+card.getString("man_of_match");
}
}
if(card.has("day")){
day=card.getString("day");
}
if(card.has("status_overview")) {
result_status=card.getString("status_overview");
if(card.getString("status").equals("completed")){
JSONObject msgs=card.getJSONObject("msgs");
if(msgs.has("info")) {
status_overview = msgs.getString("info");
}
}
else {
if(card.getString("format").equals("test")) {
status_overview = "Day:" + day + " " + card.getString("status_overview");
}
else{
if(card.getString("status_overview").equals("in_play")){
status_overview =card.getString("status_overview").replace("_"," ");
}
if(card.getString("status_overview").equals("innings_break")){
status_overview =card.getString("status_overview").replace("_"," ");
}
}
}
}
setInning=now.getString("innings");
player_strik=now.getString("striker")+"`"+now.getString("nonstriker");
strike_bowler=now.getString("bowler");
JSONObject teamObj=null;
JSONObject teambObj=null;
for(int i=0;i<teams_arr.length();i++){
if(now.getString("batting_team").equals(teams_arr.getString(i))){
teamObj=teams.getJSONObject(teams_arr.getString(i));
}
if(now.getString("bowling_team").equals(teams_arr.getString(i))){
teambObj=teams.getJSONObject(teams_arr.getString(i));
}
}
if(!now.isNull("req")){
JSONObject req=now.getJSONObject("req");
if(req.has("target_runs") && req.has("target_balls")) {
required = teamObj.getString("short_name") + " need " + req.getString("target_runs") + " runs in" + req.getString("target_balls") + " balls to win";
status_overview = required;
}
}
//SET INNING SCORE
JSONObject innings=card.getJSONObject("innings");
JSONArray ining_arr=innings.names();
for(int i=0;i<ining_arr.length();i++){
if(ining_arr.getString(i).equals("b_1")){
ining_score=innings.getJSONObject(ining_arr.getString(i));
if(ining_score.has("runs")){
if(ining_score.getString("runs").equals("0")) {
team_score="";
}
else{
team_score = "-"+ining_score.getString("runs") + "/" + ining_score.getString("wickets");
}
}
}
else if(ining_arr.getString(i).equals("a_1")){
ining_bowlling=innings.getJSONObject(ining_arr.getString(i));
if(ining_bowlling.has("runs")){
if(ining_bowlling.getString("runs").equals("0")) {
bowling_team_score = "";
}
else{
bowling_team_score = "-"+ining_bowlling.getString("runs") + "/" + ining_bowlling.getString("wickets");
}
}
}
}
if(card.getString("format").equals("test")){
for(int i=0;i<ining_arr.length();i++) {
if (ining_arr.getString(i).equals("b_2")){
ining_score_test=innings.getJSONObject(ining_arr.getString(i));
if(ining_score_test.has("runs")){
if(ining_score_test.getString("runs").equals("0")){
second_test_batting="0";
}
else {
second_test_batting = " & " + ining_score_test.getString("runs") + "/" + ining_score_test.getString("wickets");
}
}
}
else if(ining_arr.getString(i).equals("a_2")){
ining_bowling_test=innings.getJSONObject(ining_arr.getString(i));
if(ining_bowling_test.has("runs")){
if(ining_bowling_test.getString("runs").equals("0")){
second_test_bowling="";
}
else {
second_test_bowling = " & " + ining_bowling_test.getString("runs") + "/" + ining_bowling_test.getString("wickets");
}
}
}
}
}
try {
if (teamObj.has("short_name")) {
if(now.getString("batting_team").equals("b")) {
batting_team = teamObj.getString("short_name") + team_score + second_test_batting;
}
if(now.getString("batting_team").equals("a")){
batting_team = teamObj.getString("short_name") + bowling_team_score + second_test_bowling;
}
}
if(now.has("run_rate")) {
crr = "CRR" + ":" + now.getString("run_rate");
}
if(teambObj.has("short_name")) {
if(now.getString("bowling_team").equals("b")) {
bowling_team = teambObj.getString("short_name") + team_score + second_test_batting;
}
if(now.getString("bowling_team").equals("a"))
{
bowling_team = teambObj.getString("short_name") + bowling_team_score + second_test_bowling;
}
}
}
catch (NullPointerException e){
e.printStackTrace();
}
//SET INNING SCORE COMPLETED
parts=player_strik.split("`");
JSONObject player=card.getJSONObject("players");
JSONArray player_arr=player.names();
// if(parts[0]==null && parts[1]==null) {
// Log.e("PLAYER STRIKE",""+player_strik);
player_info = new ArrayList<>();
for (int i = 0; i < parts.length; i++) {
for (int j = 0; j < player_arr.length(); j++) {
if (parts[i].equals(player_arr.getString(j))) {
player_info.add(player.getJSONObject(player_arr.getString(j)));
}
}
}
// }
if(strike_bowler!=null) {
strike_list = new ArrayList<>();
for (int i = 0; i < player_arr.length(); i++) {
if (strike_bowler.equals(player_arr.getString(i))) {
strike_list.add(player.getJSONObject(player_arr.getString(i)));
}
}
}
//RECENT OVERS START
flag=1;
JSONArray recent_over = now.getJSONArray("recent_overs_str");
lst_balls_first = new ArrayList<>();
lst_over_first = new ArrayList<>();
lst_balls_two = new ArrayList<>();
lst_over_two = new ArrayList<>();
lst_over_three = new ArrayList<>();
lst_balls_three = new ArrayList<>();
hashMap = new LinkedHashMap<>();
try {
over_length=recent_over.length();
for (int a = 0; a < recent_over.length(); a++) {
if (a == 0) {
JSONArray recent_over_one = recent_over.getJSONArray(a);
for (int b = 0; b < recent_over_one.length(); b++) {
if (b == 0) {
lst_over_first.add(recent_over_one.getInt(b));
}
if (b != 0) {
JSONArray over_first = recent_over_one.getJSONArray(b);
for (int c = 0; c < over_first.length(); c++) {
lst_balls_first.add(over_first.getString(c));
}
}
}
}
if (a == 1) {
JSONArray recent_over_two = recent_over.getJSONArray(a);
for (int b = 0; b < recent_over_two.length(); b++) {
if (b == 0) {
lst_over_two.add(recent_over_two.getInt(b));
}
if (b != 0) {
JSONArray over_two = recent_over_two.getJSONArray(b);
for (int c = 0; c < over_two.length(); c++) {
lst_balls_two.add(over_two.getString(c));
}
}
}
}
if (a == 2) {
JSONArray recent_over_three = recent_over.getJSONArray(a);
for (int b = 0; b < recent_over_three.length(); b++) {
if (b == 0) {
lst_over_three.add(recent_over_three.getInt(b));
}
if (b != 0) {
JSONArray over_three = recent_over_three.getJSONArray(b);
for (int c = 0; c < over_three.length(); c++) {
lst_balls_three.add(over_three.getString(c));
}
}
}
}
}
if(over_length==1){
hashMap.put(lst_over_first.get(0), lst_balls_first);
}
if(over_length==2){
hashMap.put(lst_over_first.get(0), lst_balls_first);
hashMap.put(lst_over_two.get(0), lst_balls_two);
}
if(over_length==3){
hashMap.put(lst_over_first.get(0), lst_balls_first);
hashMap.put(lst_over_two.get(0), lst_balls_two);
hashMap.put(lst_over_three.get(0), lst_balls_three);
}
} catch (JSONException e) {
e.printStackTrace();
}
}
catch (JSONException e){
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
txtbatting_teamName.setText(batting_team);
txtBowling_teamName.setText(bowling_team);
txtCrr.setText(crr);
status.setText(status_overview);
if(mom.isEmpty()){
layout_mom.setVisibility(View.GONE);
txtMom.setVisibility(View.GONE);
}
else{
txtMom.setVisibility(View.VISIBLE);
layout_mom.setVisibility(View.VISIBLE);
txtMom.setText(mom);
}
}
上面的类是我的调用两个适配器类,它没有在帖子中声明。
这是一个错误
02-04 15:44:22.456 2208-2208/com.angelnx.cricvilla.cricvilla E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.angelnx.cricvilla.cricvilla, PID: 2208
java.lang.VerifyError: Rejecting class com.angelnx.cricvilla.cricvilla.SummaryCard$SummaryCardJson because it failed compile-time verification (declaration of 'com.angelnx.cricvilla.cricvilla.SummaryCard$SummaryCardJson' appears in /data/app/com.angelnx.cricvilla.cricvilla-1/base.apk)
at com.angelnx.cricvilla.cricvilla.SummaryCard$2$1.run(SummaryCard.java:236)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5221)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
请帮我解决这个错误。