Foros del Web » Programando para Internet » Android »

filenotfoundexception

Estas en el tema de filenotfoundexception en el foro de Android en Foros del Web. Hola... en el momento me encuentro desarrollando una aplicacion de autoactualizacion de un .apk Tengo una dificultad al descarga el archivo apk desde un servidor ...
  #1 (permalink)  
Antiguo 13/04/2015, 16:18
 
Fecha de Ingreso: abril-2015
Mensajes: 1
Antigüedad: 9 años, 8 meses
Puntos: 0
Pregunta filenotfoundexception

Hola...
en el momento me encuentro desarrollando una aplicacion de autoactualizacion de un .apk

Tengo una dificultad al descarga el archivo apk desde un servidor remoto, ya he intentado con .txt, .jpg y siguen saliendo el mismo error el cual es : java.io.filenotfoundexception

Les dejo el codigo por si me pueden ayudar y muchas gracias...

Codigo...

Manifest...
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.test"
android:versionCode="1"
android:versionName="1.0" >

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


<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="17" />

<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.test.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />

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

</manifest>

MAIN ACTIVITY
package com.test;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import org.json.JSONException;
import org.json.JSONObject;
import android.app.Activity;
import android.content.Context;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager.NameNotFoundExce ption;
import android.os.Bundle;
import android.os.Environment;
import android.os.StrictMode;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends Activity {
Context context;
Runnable listener;

private static final String Info_file = ""; //por seguridad no puedo dar el link
String lname, currentname, lUrl;
int lversion, currentversion;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().buil d();
StrictMode.setThreadPolicy(policy);
//

Context context = MainActivity.this;

TextView version= (TextView) findViewById(R.id.version);
TextView name = (TextView) findViewById(R.id.name);

TextView lastv= (TextView) findViewById(R.id.lastversion);
TextView lastn = (TextView) findViewById(R.id.lastname);
TextView lurl = (TextView) findViewById(R.id.Url);

TextView uDate=(TextView)findViewById(R.id.Actualizar);

PackageInfo pInfo;
try {
pInfo = context.getPackageManager().getPackageInfo(context .getPackageName(),0);
currentversion = pInfo.versionCode;
currentname = pInfo.versionName;
version.setText(String.valueOf(currentversion));
name.setText(currentname);
} catch (NameNotFoundException e) {
e.printStackTrace();
}


try {

String data = downloadHttp(Info_file);
JSONObject json = null;
json = new JSONObject(data);
lversion = json.getInt("versionCode");
lname = json.getString("versionName");
lUrl = json.getString("downloadURL");
lastv.setText(String.valueOf(lversion));
lastn.setText(lname);
lurl.setText(lUrl);

} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

uDate.setText(compararVersion(currentversion, lversion) ? "true" : "false");

if(compararVersion(currentversion, lversion))
{
new Thread(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
downloadFile();
}
}).start();
}

}

private static String downloadHttp(String url) {
try {
URL uri= new URL(url);
HttpURLConnection c = (HttpURLConnection) uri.openConnection();
c.setRequestMethod("GET");
c.setReadTimeout(15 * 1000);
c.setUseCaches(false);
c.connect();

BufferedReader reader = new BufferedReader(new InputStreamReader(c.getInputStream()));
StringBuilder stringBuilder = new StringBuilder();
String line = null;
while((line = reader.readLine()) != null){
stringBuilder.append(line + "\n");
}
return stringBuilder.toString();
}
catch (IOException e) {
// TODO Auto-generated catch block
Toast.makeText(null, e.getMessage(), Toast.LENGTH_LONG).show();
return e.getMessage();
}
}

private Boolean compararVersion(int cVersion, int lVersion){
return lVersion>cVersion;
}

private void downloadFile(){
try {
URL uri= new URL(""); //por seguridad no puedo dar el link
HttpURLConnection c= (HttpURLConnection) uri.openConnection();
c.setRequestMethod("GET");
c.setDoOutput(true);
c.connect();

File SDCardRoot = Environment.getExternalStorageDirectory();
File file = new File(SDCardRoot, "version.txt");
FileOutputStream fos= new FileOutputStream(file);

InputStream iS= c.getInputStream(); // Aqui me genera el error que indica que no se encuentra el archivo.

byte[] buffer = new byte[1024];
int bufferLength = 0;

while ((bufferLength = iS.read())>0) {
fos.write(buffer, 0, bufferLength);
}
fos.close();
iS.close();

} catch (Exception e) {
// TODO: handle exception
showError("Error : Please check your internet connection " + e);
e.printStackTrace();
}



}
void showError(final String err){
runOnUiThread(new Runnable() {
public void run() {
Toast.makeText(MainActivity.this, err, Toast.LENGTH_LONG).show();
}
});
}
}

ACTIVITY MAIN
<LinearLayout 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:orientation="vertical"
tools:context=".MainActivity" >

<TextView
android:id="@+id/version"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>

<TextView
android:id="@+id/name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>

<TextView
android:id="@+id/lastversion"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>

<TextView
android:id="@+id/lastname"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>

<TextView
android:id="@+id/Url"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>

<TextView
android:id="@+id/Actualizar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</LinearLayout>

Agradezco su ayuda y sugerencias...
  #2 (permalink)  
Antiguo 25/04/2015, 17:33
Avatar de Manuellama  
Fecha de Ingreso: noviembre-2006
Ubicación: Zafra, Extremadura, Spain, Spain
Mensajes: 174
Antigüedad: 18 años, 1 mes
Puntos: 10
Respuesta: filenotfoundexception

comentario eliminado

Última edición por Manuellama; 29/04/2015 a las 08:01

Etiquetas: activity, androi, aplicacion, app, view
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:35.