简体   繁体   English

较低版本的应用未在android的较高版本中运行

[英]Lower version app not running in the Higher version in android

I have made my application using android SDK 2.2 version and now when I am running my app on android SDK 4.0.3 it's not running. 我已经使用android SDK 2.2版本制作了应用程序,现在在android SDK 4.0.3上运行我的应用程序时,它没有运行。

I have given the min and the max sdk in the manifest file. 我在清单文件中给出了最小和最大sdk。

I am new in android and want to run my app for the lower and higher versions both. 我是android的新手,想同时针对较低版本和较高版本运行我的应用。 Can anybody tell me how can I do this. 谁能告诉我该怎么做。 Any help is appreciated. 任何帮助表示赞赏。

Code for splash class 飞溅类代码

package com.Cricket_trivia.in;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.MotionEvent;

public class SplashScreen extends Activity {

    protected int _splashTime = 5000; 

    private Thread splashTread;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.splash);


        final SplashScreen sPlashScreen = this; 

        // thread for displaying the SplashScreen
        splashTread = new Thread() {
            @Override
            public void run() {
                try {                   
                    synchronized(this){
                        wait(_splashTime);
                    }

                } catch(InterruptedException e) {} 
                finally {
                    finish();

                    Intent i = new Intent();
                    i.setClass(sPlashScreen, K_trivia_cricketActivity.class);
                    startActivity(i);

                    stop();
                }
            }
        };

        splashTread.start();
    }
    @Override
    public boolean onTouchEvent(MotionEvent event) {
        if (event.getAction() == MotionEvent.ACTION_DOWN) {
            synchronized(splashTread){
                splashTread.notifyAll();
            }
        }
        return true;
    }

}

EDIT: My logcat 编辑:我的logcat

    06-07 10:24:18.710: I/dalvikvm(1461): threadid=3: reacting to signal 3
    06-07 10:24:18.760: I/dalvikvm(1461): Wrote stack traces to '/data/anr/traces.txt'
    06-07 10:24:18.890: D/dalvikvm(1461): GC_FOR_ALLOC freed 45K, 4% free 6541K/6787K, paused 74ms
    06-07 10:24:18.900: I/dalvikvm-heap(1461): Grow heap (frag case) to 7.333MB for 921616-byte allocation
    06-07 10:24:19.010: I/dalvikvm(1461): threadid=3: reacting to signal 3
    06-07 10:24:19.100: I/dalvikvm(1461): Wrote stack traces to '/data/anr/traces.txt'
    06-07 10:24:19.140: D/dalvikvm(1461): GC_CONCURRENT freed <1K, 5% free 7440K/7751K, paused 5ms+5ms
    06-07 10:24:19.240: D/dalvikvm(1461): GC_FOR_ALLOC freed 0K, 5% free 7440K/7751K, paused 97ms
    06-07 10:24:19.240: I/dalvikvm-heap(1461): Grow heap (frag case) to 7.723MB for 409936-byte allocation
    06-07 10:24:19.320: D/dalvikvm(1461): GC_FOR_ALLOC freed 0K, 5% free 7841K/8199K, paused 61ms
    06-07 10:24:19.589: D/gralloc_goldfish(1461): Emulator without GPU emulation detected.
    06-07 10:24:19.669: I/dalvikvm(1461): threadid=3: reacting to signal 3
    06-07 10:24:19.779: I/dalvikvm(1461): Wrote stack traces to '/data/anr/traces.txt'
    06-07 10:24:24.600: W/dalvikvm(1461): threadid=11: thread exiting with uncaught exception (group=0x409c01f8)
    06-07 10:24:24.600: E/AndroidRuntime(1461): FATAL EXCEPTION: Thread-78
    06-07 10:24:24.600: E/AndroidRuntime(1461): java.lang.UnsupportedOperationException
    06-07 10:24:24.600: E/AndroidRuntime(1461):     at java.lang.Thread.stop(Thread.java:1076)
    06-07 10:24:24.600: E/AndroidRuntime(1461):     at java.lang.Thread.stop(Thread.java:1063)
    06-07 10:24:24.600: E/AndroidRuntime(1461):     at com.Cricket_trivia.in.SplashScreen$1.run(SplashScreen.java:40)
    06-07 10:24:26.209: D/dalvikvm(1461): GC_FOR_ALLOC freed 1037K, 15% free 7022K/8199K, paused 62ms
    06-07 10:24:26.209: I/dalvikvm-heap(1461): Grow heap (frag case) to 7.509MB for 614416-byte allocation
    06-07 10:24:26.440: D/dalvikvm(1461): GC_CONCURRENT freed <1K, 8% free 7621K/8199K, paused 4ms+5ms
    06-07 10:24:26.610: I/dalvikvm(1461): threadid=3: reacting to signal 3
    06-07 10:24:26.640: I/dalvikvm(1461): Wrote stack traces to '/data/anr/traces.txt'

The reason why your app is crashing on 4.0.3 but not 2.2 is most likely because you are performing an expensive operation on the UI thread. 您的应用在4.0.3而不是2.2崩溃的原因很可能是因为您在UI线程上执行了昂贵的操作。 Blocking the UI thread is very bad practice... don't do it!! 阻塞UI线程是非常糟糕的做法……不要这样做! Previous versions of Android (ie pre-ICS versions) didn't care when you did this and let your app run as is. 之前的Android版本(即ICS之前的版本)并不关心您何时执行此操作,而是让您的应用按原样运行。 In 4.0 and above, however, the OS checks against this and crashes your app if you ever perform a potentially expensive operation on the UI thread (such as a network connection, etc.). 但是,在4.0及更高版本中,如果您曾经在UI线程上执行过潜在的昂贵操作(例如网络连接等),则OS会对此进行检查并崩溃您的应用程序。

You have provided basically no information on what the problem is in your question, so that's all I can really do to help you out. 您基本上没有提供有关问题所在的信息,因此,我将竭尽所能为您提供帮助。


Edit: 编辑:

Does something like this work? 这样的事情行吗?

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.splash);
}

@Override
public boolean onTouchEvent(MotionEvent event) {
    if (event.getAction() == MotionEvent.ACTION_DOWN) {
        Intent i = new Intent();
        i.setClass(sPlashScreen, K_trivia_cricketActivity.class);
        startActivity(i);
    }
    return true;
}

Don't you threads because it is creating the problem in the higher version. 您不要线程化,因为它在更高版本中造成了问题。 Use the code below to show the splash screen. 使用下面的代码显示启动屏幕。

   package com.Cricket_trivia.in;



import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.os.CountDownTimer;
import android.view.MotionEvent;

public class SplashScreen extends Activity {

    protected int _splashTime = 5000; 

    private Thread splashTread;
    MyCount counter = new MyCount(4000, 4000);
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.splash);

        counter.start();
    }
     public class MyCount extends CountDownTimer
     {
         public MyCount(long csecond, long countDownInterval) 
         {
              super(csecond, countDownInterval);
         }

        @Override
        public void onFinish() {
            finish();
            Intent intent = new Intent();
            intent.setClass(SplashScreen.this, K_trivia_cricketActivity.class);
            startActivity(intent);

        }

        @Override
        public void onTick(long arg0) {
            // TODO Auto-generated method stub

        }
}
}


 I think it will work for you

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 Android App无法在更高版本上运行 - Android App not running on higher version 运行一个可执行的 Java jar - 高版本 vs 低版本? - Running an executable Java jar - Higher Version vs Lower Version? Android-从较高的API版本覆盖方法,并支持较低的API版本 - Android - Override method from higher API version and supporting lower API version 在onUpgrade中处理较低版本的数据库和较高版本的数据库 - Handling lower version database and higher version database in onUpgrade 如何将较低版本的Java编译并运行到较高版本? - How to compile and run lower version java to higher version? 是否所有com.android.support库和SDK版本都必须相等,更高或更低? - Is it all com.android.support libraries and SDK version must be equal, higher, or lower? 如何在android oreo和更高版本的设备中重新启动应用程序? - how to restart app in android oreo and higher version devices? 应用程序未在 android 版本 4.4.2(KITKAT) 上运行,但在其他设备上运行良好 - App not running on android version 4.4.2(KITKAT) but running fine on other devices 较高Java版本创建的Java对象可以在较低Java版本中运行吗 - Can a Java Object created by higher Java version run in a lower Java version Eclipse模拟器未运行最新版本的android应用 - Eclipse emulator isn't running up to date version of android app
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM