首页 文章

E / AndroidRuntime:FATAL EXCEPTION:主要用于天气appp

提问于
浏览
-3

这是我得到的错误:

E / AndroidRuntime:致命异常:主要过程:com.androstock.myweatherapp,PID:25225了java.lang.RuntimeException:无法实例活动ComponentInfo {com.androstock.myweatherapp / com.androstock.myweatherapp.MainActivity}:java.lang中 . ClassNotFoundException的:未找到路径类 “com.androstock.myweatherapp.MainActivity”:DexPathList [zip文件 “/data/app/com.androstock.myweatherapp-UMxK9GKnMSBzW_UbsKC4Nw==/base.apk”,zip文件“/数据/app/com.androstock.myweatherapp-UMxK9GKnMSBzW_UbsKC4Nw==/split_lib_dependencies_apk.apk“,zip文件”/data/app/com.androstock.myweatherapp-UMxK9GKnMSBzW_UbsKC4Nw==/split_lib_slice_0_apk.apk“,zip文件”/ data / app / com .androstock.myweatherapp-UMxK9GKnMSBzW_UbsKC4Nw == / split_lib_slice_1_apk.apk “zip文件 ”/data/app/com.androstock.myweatherapp-UMxK9GKnMSBzW_UbsKC4Nw==/split_lib_slice_2_apk.apk“,zip文件” /data/app/com.androstock.myweatherapp -UMxK9GKnMSBzW_UbsKC4Nw == / split_lib_slice_3_apk.apk“,zip file”/data/app/com.androstock.myweatherapp-UMxK9GKn MSBzW_UbsKC4Nw == / split_lib_slice_4_apk.apk“,zip文件”/data/app/com.androstock.myweatherapp-UMxK9GKnMSBzW_UbsKC4Nw==/split_lib_slice_5_apk.apk“,zip文件”/data/app/com.androstock.myweatherapp-UMxK9GKnMSBzW_UbsKC4Nw==/ split_lib_slice_6_apk.apk“,zip文件”/data/app/com.androstock.myweatherapp-UMxK9GKnMSBzW_UbsKC4Nw==/split_lib_slice_7_apk.apk“,zip文件”/data/app/com.androstock.myweatherapp-UMxK9GKnMSBzW_UbsKC4Nw==/split_lib_slice_8_apk.apk“ ,zip文件“/data/app/com.androstock.myweatherapp-UMxK9GKnMSBzW_UbsKC4Nw==/split_lib_slice_9_apk.apk"],nativeLibraryDirectories=[/data/app/com.androstock.myweatherapp-UMxK9GKnMSBzW_UbsKC4Nw==/lib/x86,/ system / lib./ vendor / lib]]在Android.app.A活动中的android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2679),android.app.ActivityThread.-wrap11(未知来源)android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2856) :0)在android.app.Handler.dispatchMessage上的android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1589) ler.java:106)在android.app.Looper.loop(Looper.java:164)的android.app.ActivityThread.main(ActivityThread.java:6494)java.lang.reflect.Method.invoke(Native Method)在com.android.internal.os.RuntimeInit $ MethodAndArgsCaller.run(RuntimeInit.java:438)在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)产生的原因:抛出java.lang.ClassNotFoundException:没“T在路径找到类 “com.androstock.myweatherapp.MainActivity”:DexPathList [[zip文件 “/data/app/com.androstock.myweatherapp-UMxK9GKnMSBzW_UbsKC4Nw==/base.apk”,zip文件“/数据/应用程序/ com.androstock.myweatherapp-UMxK9GKnMSBzW_UbsKC4Nw == / split_lib_dependencies_apk.apk“,zip文件”/data/app/com.androstock.myweatherapp-UMxK9GKnMSBzW_UbsKC4Nw==/split_lib_slice_0_apk.apk“,zip文件”/data/app/com.androstock . myweatherapp-UMxK9GKnMSBzW_UbsKC4Nw == / split_lib_slice_1_apk.apk“,zip文件”/data/app/com.androstock.myweatherapp-UMxK9GKnMSBzW_UbsKC4Nw==/split_lib_slice_2_apk.apk“,zip文件”/data/app/com.androstock.myweatherapp-UMxK9GKnMSBzW_ UbsKC4Nw == / split_lib_slice_3_apk.apk“,zip文件”/data/app/com.androstock.myweatherapp-UMxK9GKnMSBzW_UbsKC4Nw==/split_lib_slice_4_apk.apk“,zip文件”/data/app/com.androstock.myweatherapp-UMxK9GKnMSBzW_UbsKC4Nw==/ split_lib_slice_5_apk.apk“,zip文件”/data/app/com.androstock.myweatherapp-UMxK9GKnMSBzW_UbsKC4Nw==/split_lib_slice_6_apk.apk“,zip文件”/data/app/com.androstock.myweatherapp-UMxK9GKnMSBzW_UbsKC4Nw==/split_lib_slice_7_apk.apk“ ,zip文件“/data/app/com.androstock.myweatherapp-UMxK9GKnMSBzW_UbsKC4Nw==/split_lib_slice_8_apk.apk”,zip文件“/data/app/com.androstock.myweatherapp-UMxK9GKnMSBzW_UbsKC4Nw==/split_lib_slice_9_apk.apk"],nativeLibraryDirectories= [/data/app/com.androstock.myweatherapp-UMxK9GKnMSBzW_UbsKC4Nw==/lib/x86,/系统/ lib下,/供应商/ LIB]在dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:125)在java.lang中java.lang.ClassLoader.loadClass中的.ClassLoader.loadClass(ClassLoader.java:379)(ClassLoader.java:312)E / AndroidRuntime:在android.app.Instrume ntation.newActivity(Instrumentation.java:1174)在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2669)... 9更多

这是一个简单的天气应用程序

这是我的Android Manifest xml文件

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.androstock.myweatherapp" >

<uses-permission android:name="android.permission.INTERNET"/>

<application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="MyWeatherApp"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:supportsRtl="true"
    android:theme="@style/AppTheme">
    <activity android:name=".MainActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" 
/>
        </intent-filter>
    </activity>
</application>

</manifest>

这是我的activity_main mxl文件

<RelativeLayout 
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#3F51B5"
android:padding="20dp">

<TextView
    android:id="@+id/city_field"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:textColor="#FFFFFF"
    android:textAppearance="?android:attr/textAppearanceLarge" />

<TextView
    android:id="@+id/updated_field"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/city_field"
    android:layout_centerHorizontal="true"
    android:textColor="#FFFFFF"
    android:textAppearance="?android:attr/textAppearanceMedium"
    android:textSize="13sp" />

<TextView
    android:id="@+id/weather_icon"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerVertical="true"
    android:layout_centerHorizontal="true"
    android:textColor="#FFFFFF"
    android:textAppearance="?android:attr/textAppearanceLarge"
    android:textSize="90sp"
    />

<TextView
    android:id="@+id/current_temperature_field"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_centerHorizontal="true"
    android:textColor="#FFFFFF"
    android:textAppearance="?android:attr/textAppearanceLarge"
    android:textSize="50sp" />

<TextView
    android:id="@+id/details_field"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/weather_icon"
    android:layout_centerHorizontal="true"
    android:textColor="#FFFFFF"
    android:textAppearance="?android:attr/textAppearanceMedium"
    />
<TextView
    android:id="@+id/humidity_field"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/details_field"
    android:layout_centerHorizontal="true"
    android:textColor="#FFFFFF"
    android:textAppearance="?android:attr/textAppearanceMedium"
    />
<TextView
    android:id="@+id/pressure_field"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/humidity_field"
    android:layout_centerHorizontal="true"
    android:textColor="#FFFFFF"
    android:textAppearance="?android:attr/textAppearanceMedium"
    />

</RelativeLayout>

这是我的Function.java文件

package com.androstock.myweatherapp;

import android.os.AsyncTask;
import android.util.Log;

import org.json.JSONException;
import org.json.JSONObject;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.text.DateFormat;
import java.util.Date;
import java.util.Locale;

public class Function {

// Project Created by Ferdousur Rahman Shajib
// www.androstock.com

private static final String OPEN_WEATHER_MAP_URL = 
"http://api.openweathermap.org/data/2.5/weather? 
lat=%s&lon=%s&units=metric";

private static final String OPEN_WEATHER_MAP_API = 
"61c4e901819fba78364061df78e90f9a";

public static String setWeatherIcon(int actualId, long sunrise, long 
sunset) {
    int id = actualId / 100;
    String icon = "";
    if (actualId == 800) {
        long currentTime = new Date().getTime();
        if (currentTime >= sunrise && currentTime < sunset) {
            icon = "&#xf00d;";
        } else {
            icon = "&#xf02e;";
        }
    } else {
        switch (id) {
            case 2:
                icon = "&#xf01e;";
                break;
            case 3:
                icon = "&#xf01c;";
                break;
            case 7:
                icon = "&#xf014;";
                break;
            case 8:
                icon = "&#xf013;";
                break;
            case 6:
                icon = "&#xf01b;";
                break;
            case 5:
                icon = "&#xf019;";
                break;
        }
    }
    return icon;
}


public interface AsyncResponse {

    void processFinish(String output1, String output2, String output3, 
String output4, String output5, String output6, String output7, String 
output8);
}


public static class placeIdTask extends AsyncTask<String, Void, 
JSONObject> {

    public AsyncResponse delegate = null;//Call back interface

    public placeIdTask(AsyncResponse asyncResponse) {
        delegate = asyncResponse;//Assigning call back 
interfacethrough constructor
    }

    @Override
    protected JSONObject doInBackground(String... params) {

        JSONObject jsonWeather = null;
        try {
            jsonWeather = getWeatherJSON(params[0], params[1]);
        } catch (Exception e) {
            Log.d("Error", "Cannot process JSON results", e);
        }


        return jsonWeather;
    }

    @Override
    protected void onPostExecute(JSONObject json) {
        try {
            if (json != null) {
                JSONObject details 
json.getJSONArray("weather").getJSONObject(0);
                JSONObject main = json.getJSONObject("main");
                DateFormat df = DateFormat.getDateTimeInstance();


                String city = 
json.getString("name").toUpperCase(Locale.US) + ", " + 
json.getJSONObject("sys").getString("country");
                String description = 
details.getString("description").toUpperCase(Locale.US);
                String temperature = String.format("%.2f", 
main.getDouble("temp")) + "°";
                String humidity = main.getString("humidity") + "%";
                String pressure = main.getString("pressure") + " hPa";
                String updatedOn = df.format(new 
Date(json.getLong("dt") * 1000));
                String iconText = setWeatherIcon(details.getInt("id"),
                        json.getJSONObject("sys").getLong("sunrise") * 
1000,
                        json.getJSONObject("sys").getLong("sunset") * 
1000);

                delegate.processFinish(city, description, temperature, 
humidity, pressure, updatedOn, iconText, "" + 
(json.getJSONObject("sys").getLong("sunrise") * 1000));

            }
        } catch (JSONException e) {
            //Log.e(LOG_TAG, "Cannot process JSON results", e);
        }


    }
}


public static JSONObject getWeatherJSON(String lat, String lon) {
    try {
        URL url = new URL(String.format(OPEN_WEATHER_MAP_URL, lat, 
lon));
        HttpURLConnection connection =
                (HttpURLConnection) url.openConnection();

        connection.addRequestProperty("x-api-key", 
OPEN_WEATHER_MAP_API);

        BufferedReader reader = new BufferedReader(
                new InputStreamReader(connection.getInputStream()));

        StringBuffer json = new StringBuffer(1024);
        String tmp = "";
        while ((tmp = reader.readLine()) != null)
            json.append(tmp).append("\n");
        reader.close();

        JSONObject data = new JSONObject(json.toString());

        // This value will be 404 if the request was not
        // successful
        if (data.getInt("cod") != 200) {
            return null;
        }

        return data;
    } catch (Exception e) {
        return null;
    }


}


}

这是我的MainActivity.java文件

package com.androstock.myweatherapp;
/**
* Created by SHAJIB on 7/4/2017.
*/
import android.graphics.Typeface;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.text.Html;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

// Project Created by Ferdousur Rahman Shajib
// www.androstock.com


TextView cityField, detailsField, currentTemperatureField, 
humidity_field, pressure_field, weatherIcon, updatedField;

Typeface weatherFont;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    getSupportActionBar().hide();
    setContentView(R.layout.activity_main);


    weatherFont = 
Typeface.createFromAsset(getApplicationContext().getAssets(), 
"fonts/weathericons-regular-webfont.ttf");

    cityField = (TextView)findViewById(R.id.city_field);
    updatedField = (TextView)findViewById(R.id.updated_field);
    detailsField = (TextView)findViewById(R.id.details_field);
    currentTemperatureField = 
(TextView)findViewById(R.id.current_temperature_field);
    humidity_field = (TextView)findViewById(R.id.humidity_field);
    pressure_field = (TextView)findViewById(R.id.pressure_field);
    weatherIcon = (TextView)findViewById(R.id.weather_icon);
    weatherIcon.setTypeface(weatherFont);


    Function.placeIdTask asyncTask =new Function.placeIdTask(new 
Function.AsyncResponse() {
        public void processFinish(String weather_city, String 
weather_description, String weather_temperature, String 
weather_humidity, String weather_pressure, String weather_updatedOn, 
String weather_iconText, String sun_rise) {

            cityField.setText(weather_city);
            updatedField.setText(weather_updatedOn);
            detailsField.setText(weather_description);
            currentTemperatureField.setText(weather_temperature);
            humidity_field.setText("Humidity: "+weather_humidity);
            pressure_field.setText("Pressure: "+weather_pressure);
            weatherIcon.setText(Html.fromHtml(weather_iconText));

        }
    });
    asyncTask.execute("25.180000", "89.530000"); //  
asyncTask.execute("Latitude", "Longitude")



}


}

我的java中有混杂的东西吗?我也只使用模拟器来运行代码,而不是物理设备 .

人们似乎在低调我的问题 . 如果有更好的说法,请随时通知我 . 也许你可以回想起你是一个新的程序员 .

1 回答

  • 0

    Instant Run-ed apk有问题Android Studio正在推送到您的手机 . 卸载测试设备中的当前应用程序,清理项目并再次运行 . 它应该这次工作 .

相关问题