Añadir Boot Service a app
Publicado por Envupm (1 intervención) el 01/01/2015 18:59:44
Bueno lo primero de todo, Feliz año 2015 a todos!!
Tengo un problemilla con una app que que estoy modificando y no veo donde esta el error.
Se trata de modificar una app para que se inicie siempre que se reinicie el telefono,
He intentado incluir la clase BootReciever y he modificado el AndroidManifest como tendria
que ser, dando los permisos oportunos pero siempre acabo con el mismo error.
AndroidManifest:
<?xml version="1.0" encoding="utf-8"?>
<manifest android:versionCode="1" android:versionName="1.0" package="com.crono.stage"
xmlns:android="http://schemas.android.com/apk/res/android">
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<application android:label="@string/app_name">
<activity android:theme="@*android:style/Theme.NoDisplay" android:label="@string/app_name" android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<receiver android:name=".BootReciever">
<intent-filter >
<action android:name="android.intent.action.BOOT_COMPLETED"/>
</intent-filter>
</receiver>
</application>
</manifest>
Y aqui el BootReciever:
package com.crono.stage;
import android.app.BroadcastReceiver;
import android.app.Context;
import android.app.Intent;
public class BootReciever extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent)
{
Intent myIntent = new Intent(context, MainActivity.class);
myIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(myIntent);
}
}
Y aqui el error que me casca el logcat:
01-01 18:07:09.138 2455 2455 E AndroidRuntime: java.lang.RuntimeException: Unable to instantiate receiver
com.crono.stage.BootReciever: java.lang.ClassNotFoundException: Didn't find class "com.crono.stage.BootReciever"
on path: DexPathList[[zip file "/data/app/com.crono.stage-2.apk"],
nativeLibraryDirectories=[/data/app-lib/com.crono.stage-2, /vendor/lib, /system/lib]]
01-01 18:07:09.138 2455 2455 E AndroidRuntime: Caused by: java.lang.ClassNotFoundException: Didn't find class
"com.crono.stage.BootReciever" on path: DexPathList[[zip file "/data/app/com.crono.stage-2.apk"],
nativeLibraryDirectories=[/data/app-lib/com.crono.stage-2, /vendor/lib, /system/lib]]
Parece que no encuentra la ruta, pero yo creo que esta correcta...
Deciros que nunca he programado en java y he empezado con esto hace muy poquito asi que puede haber un error como
un camion y no verlo... no seais muy crueles ;.)
Saludos
Tengo un problemilla con una app que que estoy modificando y no veo donde esta el error.
Se trata de modificar una app para que se inicie siempre que se reinicie el telefono,
He intentado incluir la clase BootReciever y he modificado el AndroidManifest como tendria
que ser, dando los permisos oportunos pero siempre acabo con el mismo error.
AndroidManifest:
<?xml version="1.0" encoding="utf-8"?>
<manifest android:versionCode="1" android:versionName="1.0" package="com.crono.stage"
xmlns:android="http://schemas.android.com/apk/res/android">
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<application android:label="@string/app_name">
<activity android:theme="@*android:style/Theme.NoDisplay" android:label="@string/app_name" android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<receiver android:name=".BootReciever">
<intent-filter >
<action android:name="android.intent.action.BOOT_COMPLETED"/>
</intent-filter>
</receiver>
</application>
</manifest>
Y aqui el BootReciever:
package com.crono.stage;
import android.app.BroadcastReceiver;
import android.app.Context;
import android.app.Intent;
public class BootReciever extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent)
{
Intent myIntent = new Intent(context, MainActivity.class);
myIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(myIntent);
}
}
Y aqui el error que me casca el logcat:
01-01 18:07:09.138 2455 2455 E AndroidRuntime: java.lang.RuntimeException: Unable to instantiate receiver
com.crono.stage.BootReciever: java.lang.ClassNotFoundException: Didn't find class "com.crono.stage.BootReciever"
on path: DexPathList[[zip file "/data/app/com.crono.stage-2.apk"],
nativeLibraryDirectories=[/data/app-lib/com.crono.stage-2, /vendor/lib, /system/lib]]
01-01 18:07:09.138 2455 2455 E AndroidRuntime: Caused by: java.lang.ClassNotFoundException: Didn't find class
"com.crono.stage.BootReciever" on path: DexPathList[[zip file "/data/app/com.crono.stage-2.apk"],
nativeLibraryDirectories=[/data/app-lib/com.crono.stage-2, /vendor/lib, /system/lib]]
Parece que no encuentra la ruta, pero yo creo que esta correcta...
Deciros que nunca he programado en java y he empezado con esto hace muy poquito asi que puede haber un error como
un camion y no verlo... no seais muy crueles ;.)
Saludos
Valora esta pregunta


0