우 돌비 시연 후 간단한 응용 프로그램이 있습니다 : https://classroom.udacity.com/courses/ud853. 여기에 소스 코드 : https://github.com/ionutincau/Vremea.APK를 설치할 때만 오류가 발생합니다.
USB 디버깅 모드 (Android Studio의 실행 옵션)를 통해 앱을 설치하면 정상적으로 작동하지만 'APK 빌드'하고 빌드 된 APK를 설치하면 앱이 다운됩니다.
인터넷에 연결되어 있지만 http://api.openweathermap.org에서 데이터를 가져 오려고하면 Connection Error java.io.FileNotFoundException
이라는 URL이 표시됩니다. 내가 설정을 열 때, 나는 얻을 :
FATAL EXCEPTION: main
Process: com.example.ionut.vremea2, PID: 6850
java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.ionut.vremea2/com.example.ionut.vremea2.SettingsActivity}: java.lang.IllegalAccessException:
APK 파일에서 응용 프로그램을 설치 한 경우에만 나는 오류를 얻을
SettingsActivity
class SettingsActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_settings);
}
}
나는이 코드를 사용하고 인터넷에서 데이터 가져 오기 :
protected String[] doInBackground(String... params) {
if (params.length == 0) {
return null;
}
HttpURLConnection urlConnection = null;
BufferedReader reader = null;
String forecastJsonStr = null;
String format = "json";
String units = "metric";
int numDays = 7;
String api_key = "my_key"; // I have a valid code in my app
try {
// Construct the URL for the OpenWeatherMap query
final String FORECAST_BASE_URL = "http://api.openweathermap.org/data/2.5/forecast/daily?";
final String QUERY_PARAM = "id";
final String FORMAT_PARAM = "mode";
final String UNITS_PARAM = "units";
final String DAYS_PARAM = "cnt";
final String APPID_PARAM = "APPID";
// Construct the URL for the OpenWeatherMap query
Uri builtUri = Uri.parse(FORECAST_BASE_URL).buildUpon()
.appendQueryParameter(QUERY_PARAM, params[0])
.appendQueryParameter(FORMAT_PARAM, format)
.appendQueryParameter(UNITS_PARAM, units)
.appendQueryParameter(DAYS_PARAM, Integer.toString(numDays))
.appendQueryParameter(APPID_PARAM, api_key)
.build();
URL url = new URL(builtUri.toString());
// Create the request to OpenWeatherMap, and open the connection
urlConnection = (HttpURLConnection) url.openConnection();
urlConnection.setRequestMethod("GET");
urlConnection.connect();
// Read the input stream into a String
InputStream inputStream = urlConnection.getInputStream();
// ... do something
관련 코드 표시. –
소스 코드는 https://github.com/ionutincau/Vremea에 있습니다. – WhiteShadow