1

У меня проблема. Мое имя пакета com.dd.batterystats, но когда я скомпилирую приложение и установлю его с изменением имени пакета в com.dd.batterystats-1 .. Это проблема для меня, потому что у меня есть служба при загрузке, которая запускает уведомление. Конечно, теперь я получаю сообщение об ошибке: Didn't find class "com.dd.batterystats.MyScheduleReceiver" on path: /data/app/com.dd.batterystats-1 Почему во время установки имя пакета меняется? EDIT:Почему меняют имя пакета при установке приложения?

Это часть манифеста: Конечно первый:

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"> 

затем

<receiver android:name="MyScheduleReceiver" > 
    <intent-filter> 
     <action android:name="android.intent.action.BOOT_COMPLETED" /> 
    </intent-filter> 

</receiver> 
<service android:name="service" > 
</service> 

А вот service.java

public class service extends Service { 

    NotificationManager mNotificationManager; 
     @Override public IBinder onBind(Intent intent) { 
     // Not used 
     return null; 
     } 

     @Override public void onCreate() { 
     super.onCreate(); 
    mNotificationManager= (NotificationManager)getSystemService(NOTIFICATION_SERVICE); 
checkPref(); 
} 
@Override 
     public void onDestroy() { 
     super.onDestroy(); 

     } 

private void checkPref(){ 
     NotificationCompat.Builder notificationBuilder = new NotificationCompat.Builder(
           service.this); 
       notificationBuilder.setContentTitle("Title"); 
       notificationBuilder.setContentText("Context"); 
       notificationBuilder.setTicker("TickerText"); 
       notificationBuilder.setWhen(System.currentTimeMillis()); 
       notificationBuilder.setSmallIcon(R.drawable.ic_stat_icon); 

       Intent notificationIntent = new Intent(this, service.class); 
       PendingIntent contentIntent = PendingIntent.getActivity(this, 0, 
           notificationIntent, 0); 

       notificationBuilder.setContentIntent(contentIntent); 

       notificationBuilder.setDefaults(Notification.DEFAULT_SOUND 
           | Notification.DEFAULT_LIGHTS | Notification.DEFAULT_VIBRATE); 

       mNotificationManager.notify(1, 
           notificationBuilder.build()); 
    } } 

здесь MyScheduleReceiver. java

public class MyScheduleReceiver extends BroadcastReceiver { 


    // Restart service every 30 min 
    private static final long REPEAT_TIME = 30*1000*4;//1800000 ; 

    @Override 
    public void onReceive(Context context, Intent intent) { 
Intent service = new Intent(context, service.class); 
context.startService(service); 
}} 
+0

Android просто изменяет имя apk, а не имя пакета. Ваша проблема в вашем заявлении, пожалуйста, предоставьте дополнительную информацию. –

+0

отредактировал вопрос. –

+0

Измените пакеты java в своей среде IDE, убедитесь, что MyScheduleReceiver находится в правильном пакете. И вы должны добавить a. перед именем, это добавит имя пакета в имя получателя, например:

ответ

0

Ответ на первый вопрос:

Android просто меняет имя APK, а не имя пакета

Второй вопрос:

Измените ява пакеты в вашей IDE, убедитесь, что MyScheduleReceiver находится в правильном пакете. И вы должны добавить a. перед именем это добавит имя пакета к имени получателя, например:

<receiver android:name=".MyScheduleReceiver" > 
Смежные вопросы