简体   繁体   English

Android应用程序可在模拟器中运行,但无法在设备上运行

[英]Android application works in emulator but failed in device

my android application works fine in emulator, but when i install the .apk and run, it said "Unfortunately 'application' has stopped" 我的Android应用程序可以在模拟器中正常运行,但是当我安装.apk并运行时,它说“不幸的是,“应用程序”已停止”

this is the androidmanifest.xml 这是androidmanifest.xml

    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.android.baliweather"
    android:versionCode="1"
    android:versionName="1.0" >

<uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="21" />
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity android:name=".Main"
              android:label="@string/app_name"
              android:theme="@android:style/Theme.NoTitleBar">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
     <activity android:name=".Prakiraan"
             android:label="@string/app_name"
             android:theme="@android:style/Theme.NoTitleBar">
    </activity>
    <activity android:name=".Update"
             android:label="@string/app_name"
             android:theme="@android:style/Theme.NoTitleBar">
    </activity>
      <activity android:name=".Info"
             android:label="@string/app_name"
             android:theme="@android:style/Theme.NoTitleBar">
    </activity>
</application>

error log: 错误日志:

09-02 15:25:01.372: E/AndroidRuntime(16394): FATAL EXCEPTION: main 09-02 15:25:01.372: E/AndroidRuntime(16394): android.os.NetworkOnMainThreadException 09-02 15:25:01.372: E/AndroidRuntime(16394): at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1133) 09-02 15:25:01.372: E/AndroidRuntime(16394): at libcore.io.BlockGuardOs.recvfrom(BlockGuardOs.java:163) 09-02 15:25:01.372: E/AndroidRuntime(16394): at libcore.io.IoBridge.recvfrom(IoBridge.java:519) 09-02 15:25:01.372: E/AndroidRuntime(16394): at java.net.PlainSocketImpl.read(PlainSocketImpl.java:489) 09-02 15:25:01.372: E/AndroidRuntime(16394): at java.net.PlainSocketImpl.access$000(PlainSocketImpl.java:46) 09-02 15:25:01.372: E/AndroidRuntime(16394): at java.net.PlainSocketImpl$PlainSocketInputStream.read(PlainSocketImpl.java:241) 09-02 15:25:01.372: E/AndroidRuntime(16394): at java.io.InputStream.read(InputStream.java:163) 09-02 15:25:01.372: E/AndroidRuntime(16394): at java.io.BufferedInputStream.fillbuf(Buf 09-02 15:25:01.372:E / AndroidRuntime(16394):致命异常:主09-02 15:25:01.372:E / AndroidRuntime(16394):android.os.NetworkOnMainThreadException 09-02 15:25:01.372: E / AndroidRuntime(16394):位于android.os.StrictMode $ AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1133)09-02 15:25:01.372:E / AndroidRuntime(16394):位于libcore.io.BlockGuardOs.recvfrom(BlockGuardOs .java:163)09-02 15:25:01.372:E / AndroidRuntime(16394):位于libcore.io.IoBridge.recvfrom(IoBridge.java:519)09-02 15:25:01.372:E / AndroidRuntime(16394) ):在java.net.PlainSocketImpl.read(PlainSocketImpl.java:489)09-02 15:25:01.372:E / AndroidRuntime(16394):在java.net.PlainSocketImpl.access $ 000(PlainSocketImpl.java:46)09 -02 15:25:01.372:E / AndroidRuntime(16394):at java.net.PlainSocketImpl $ PlainSocketInputStream.read(PlainSocketImpl.java:241)09-02 15:25:01.372:E / AndroidRuntime(16394):at java .io.InputStream.read(InputStream.java:163)09-02 15:25:01.372:E / AndroidRuntime(16394):at java.io.BufferedInputStream.fillbuf(Buf feredInputStream.java:142) 09-02 15:25:01.372: E/AndroidRuntime(16394): at java.io.BufferedInputStream.read(BufferedInputStream.java:227) 09-02 15:25:01.372: E/AndroidRuntime(16394): at libcore.io.Streams.readAsciiLine(Streams.java:201) 09-02 15:25:01.372: E/AndroidRuntime(16394): at libcore.net.http.HttpEngine.readResponseHeaders(HttpEngine.java:579) 09-02 15:25:01.372: E/AndroidRuntime(16394): at libcore.net.http.HttpEngine.readResponse(HttpEngine.java:827) 09-02 15:25:01.372: E/AndroidRuntime(16394): at libcore.net.http.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:283) 09-02 15:25:01.372: E/AndroidRuntime(16394): at libcore.net.http.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:177) 09-02 15:25:01.372: E/AndroidRuntime(16394): at java.net.URL.openStream(URL.java:462) 09-02 15:25:01.372: E/AndroidRuntime(16394): at com.android.baliweather.MyParser.xmlParsing(MyParser.java:43) 09-02 15:25:01.372: E/AndroidRuntime(16394): at com.android.baliweather.Pra feredInputStream.java:142)09-02 15:25:01.372:E / AndroidRuntime(16394):at java.io.BufferedInputStream.read(BufferedInputStream.java:227)09-02 15:25:01.372:E / AndroidRuntime( 16394):位于libcore.io.Streams.readAsciiLine(Streams.java:201)09-02 15:25:01.372:E / AndroidRuntime(16394):位于libcore.net.http.HttpEngine.readResponseHeaders(HttpEngine.java:579 )09-02 15:25:01.372:E / AndroidRuntime(16394):位于libcore.net.http.HttpEngine.readResponse(HttpEngine.java:827)09-02 15:25:01.372:E / AndroidRuntime(16394):在libcore.net.http.HttpURLConnectionImpl.getResponse(HttpURLConnectionImpl.java:283)09-02 15:25:01.372:E / AndroidRuntime(16394):在libcore.net.http.HttpURLConnectionImpl.getInputStream(HttpURLConnectionImpl.java:177) 09-02 15:25:01.372:E / AndroidRuntime(16394):at java.net.URL.openStream(URL.java:462)09-02 15:25:01.372:E / AndroidRuntime(16394):at com。 android.baliweather.MyParser.xmlParsing(MyParser.java:43)09-02 15:25:01.372:E / AndroidRuntime(16394):在com.android.baliweather.Pra kiraan$MyAsyncTask.onPostExecute(Prakiraan.java:60) 09-02 15:25:01.372: E/AndroidRuntime(16394): at com.android.baliweather.Prakiraan$MyAsyncTask.onPostExecute(Prakiraan.java:1) 09-02 15:25:01.372: E/AndroidRuntime(16394): at android.os.AsyncTask.finish(AsyncTask.java:631) 09-02 15:25:01.372: E/AndroidRuntime(16394): at android.os.AsyncTask.access$600(AsyncTask.java:177) 09-02 15:25:01.372: E/AndroidRuntime(16394): at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:644) 09-02 15:25:01.372: E/AndroidRuntime(16394): at android.os.Handler.dispatchMessage(Handler.java:99) 09-02 15:25:01.372: E/AndroidRuntime(16394): at android.os.Looper.loop(Looper.java:137) 09-02 15:25:01.372: E/AndroidRuntime(16394): at android.app.ActivityThread.main(ActivityThread.java:5214) 09-02 15:25:01.372: E/AndroidRuntime(16394): at java.lang.reflect.Method.invokeNative(Native Method) 09-02 15:25:01.372: E/AndroidRuntime(16394): at java.lang.reflect.Method.invoke(Method.java:525) 09-02 15:25:01. kiraan $ MyAsyncTask.onPostExecute(Prakiraan.java:60)09-02 15:25:01.372:E / AndroidRuntime(16394):在com.android.baliweather.Prakiraan $ MyAsyncTask.onPostExecute(Prakiraan.java:1)09-02 15:25:01.372:E / AndroidRuntime(16394):位于android.os.AsyncTask.finish(AsyncTask.java:631)09-02 15:25:01.372:E / AndroidRuntime(16394):位于android.os.AsyncTask .access $ 600(AsyncTask.java:177)09-02 15:25:01.372:E / AndroidRuntime(16394):at android.os.AsyncTask $ InternalHandler.handleMessage(AsyncTask.java:644)09-02 15:25: 01.372:E / AndroidRuntime(16394):位于android.os.Handler.dispatchMessage(Handler.java:99)09-02 15:25:01.372:E / AndroidRuntime(16394):位于android.os.Looper.loop(Looper .java:137)09-02 15:25:01.372:E / AndroidRuntime(16394):位于android.app.ActivityThread.main(ActivityThread.java:5214)09-02 15:25:01.372:E / AndroidRuntime(16394) ):at java.lang.reflect.Method.invokeNative(本机方法)09-02 15:25:01.372:E / AndroidRuntime(16394):at java.lang.reflect.Method.invoke(Method.java:525)09 -02 15:25:01。 372: E/AndroidRuntime(16394): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:739) 09-02 15:25:01.372: E/AndroidRuntime(16394): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:555) 09-02 15:25:01.372: E/AndroidRuntime(16394): at dalvik.system.NativeStart.main(Native Method) 372:E / AndroidRuntime(16394):在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:739)09-02 15:25:01.372:E / AndroidRuntime(16394):在com.android .internal.os.ZygoteInit.main(ZygoteInit.java:555)09-02 15:25:01.372:E / AndroidRuntime(16394):在dalvik.system.NativeStart.main(本机方法)

 android.os.NetworkOnMainThreadException

Pretty self-explainatory, right? 很好解释,对不对? You're doing network tasks (HTTP Requests and such) on the UI thread. 您正在UI线程上执行网络任务(HTTP请求等)。 You should run it in a separate thread. 您应该在单独的线程中运行它。

    private class LongOperation extends AsyncTask<String, Void, String> {

        @Override
        protected String doInBackground(String... params) {
            for (int i = 0; i < 5; i++) {
                try {
                    Thread.sleep(1000);
                } catch (InterruptedException e) {
                    Thread.interrupted();
                }
            }
            return "Executed";
        }

        @Override
        protected void onPostExecute(String result) {
            TextView txt = (TextView) findViewById(R.id.output);
            txt.setText("Executed"); // txt.setText(result);
            // might want to change "executed" for the returned string passed
            // into onPostExecute() but that is upto you
        }

        @Override
        protected void onPreExecute() {}

        @Override
        protected void onProgressUpdate(Void... values) {}
    }

Above an example. 以上是一个例子。

Make it a inner class from your activity 从您的活动中使其成为内部课程

Once i am having the same issue after uploading it to playstore . 将我上传到playstore后遇到同样的问题。

When app crashes you can see two buttons, force stop / OK and report . 当应用崩溃时,您会看到两个按钮,即强制停止/确定和报告 Click on report button and there you will find various tabs. 单击report button ,您将在其中找到各种标签。 In one of the tabs you will get stacktrace. 在选项卡之一中,您将获得堆栈跟踪。 and then you can know where your error is... 然后您可以知道错误在哪里...

And one time clean the project and recreate an apk and then check also.. 一次清理项目并重新创建apk,然后再检查。

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

相关问题 Android应用程序可以在模拟器上正常运行,但不能在真实设备上运行 - Android Application works fine on emulator but not on a real device Android:开发的应用程序在模拟器中工作但未安装在我的设备中 - Android: developed application works in emulator but not getting installed in my device Android应用程序可在模拟器上正常运行,但在真实设备上崩溃 - Android Application works correctly on emulator but crashes on real device Firebase android 可以在模拟器上运行,但不能在设备上运行 - Firebase android works on the emulator but not on the device Android split()在模拟器上有效,但在设备上无效 - Android split() works on Emulator but not on device SimpleXML在模拟器上工作,而不在Android设备上工作 - SimpleXML works on emulator, not on Android device http://10.0.2.2适用于android模拟器,但不适用于用作模拟器的android设备 - http://10.0.2.2 works on the android emulator but not on android device used as a emulator android 应用程序适用于模拟器但不适用于真实设备 - android app works on emulator but not in real device Android Studio 应用程序可以在模拟器中运行,但不能在真实设备上运行 - Android Studio app works in emulator but not on a real device Android小部件仅在模拟器上有效,而不能在真实设备上有效 - Android widget works only on emulator not on real device
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM