PDA

View Full Version : مشکل در اجرای برنامه در زمان بوت



sobhan1990
سه شنبه 18 شهریور 1393, 22:17 عصر
سلام
من برنامه ای نوشتم که میخوام در زمان بوت شدن اجرا بشه ولی متاسفانه کرش میکنه.

کد مانیفستم اینه:

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

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

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

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

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

<receiver android:enabled="true" android:name=".AutoStart" android:exported="true"
android:permission="android.permission.RECEIVE_BOOT_COMPLETED">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</receiver>
</application>
</manifest>

اینم کلاس جاوا:

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import com.example.autostarttest.*;

public class AutoStart extends BroadcastReceiver{
@Override
public void onReceive(Context context, Intent intent) {
Intent i = new Intent(context, AutoStartTest.class);
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(i);
}
}
فایل لوگ:

09-09 12:52:35.116: E/ActivityThread(601): Service com.android.exchange.ExchangeService has leaked ServiceConnection com.android.emailcommon.service.ServiceProxy$Proxy Connection@40cf27d0 that was originally bound here
09-09 12:52:35.116: E/ActivityThread(601): android.app.ServiceConnectionLeaked: Service com.android.exchange.ExchangeService has leaked ServiceConnection com.android.emailcommon.service.ServiceProxy$Proxy Connection@40cf27d0 that was originally bound here
09-09 12:52:35.116: E/ActivityThread(601): at android.app.LoadedApk$ServiceDispatcher.<init>(LoadedApk.java:969)
09-09 12:52:35.116: E/ActivityThread(601): at android.app.LoadedApk.getServiceDispatcher(LoadedA pk.java:863)
09-09 12:52:35.116: E/ActivityThread(601): at android.app.ContextImpl.bindService(ContextImpl.ja va:1418)
09-09 12:52:35.116: E/ActivityThread(601): at android.app.ContextImpl.bindService(ContextImpl.ja va:1407)
09-09 12:52:35.116: E/ActivityThread(601): at android.content.ContextWrapper.bindService(Context Wrapper.java:473)
09-09 12:52:35.116: E/ActivityThread(601): at com.android.emailcommon.service.ServiceProxy.setTa sk(ServiceProxy.java:157)
09-09 12:52:35.116: E/ActivityThread(601): at com.android.emailcommon.service.ServiceProxy.setTa sk(ServiceProxy.java:145)
09-09 12:52:35.116: E/ActivityThread(601): at com.android.emailcommon.service.ServiceProxy.test( ServiceProxy.java:191)
09-09 12:52:35.116: E/ActivityThread(601): at com.android.exchange.ExchangeService$7.run(Exchang eService.java:1850)
09-09 12:52:35.116: E/ActivityThread(601): at com.android.emailcommon.utility.Utility$2.doInBack ground(Utility.java:551)
09-09 12:52:35.116: E/ActivityThread(601): at com.android.emailcommon.utility.Utility$2.doInBack ground(Utility.java:549)
09-09 12:52:35.116: E/ActivityThread(601): at android.os.AsyncTask$2.call(AsyncTask.java:287)
09-09 12:52:35.116: E/ActivityThread(601): at java.util.concurrent.FutureTask.run(FutureTask.jav a:234)
09-09 12:52:35.116: E/ActivityThread(601): at java.util.concurrent.ThreadPoolExecutor.runWorker( ThreadPoolExecutor.java:1080)
09-09 12:52:35.116: E/ActivityThread(601): at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:573)
09-09 12:52:35.116: E/ActivityThread(601): at java.lang.Thread.run(Thread.java:856)
09-09 12:52:35.215: D/dalvikvm(400): GC_CONCURRENT freed 339K, 14% free 3105K/3596K, paused 6ms+8ms, total 77ms
09-09 12:52:35.295: E/StrictMode(601): null
09-09 12:52:35.295: E/StrictMode(601): android.app.ServiceConnectionLeaked: Service com.android.exchange.ExchangeService has leaked ServiceConnection com.android.emailcommon.service.ServiceProxy$Proxy Connection@40cf27d0 that was originally bound here
09-09 12:52:35.295: E/StrictMode(601): at android.app.LoadedApk$ServiceDispatcher.<init>(LoadedApk.java:969)
09-09 12:52:35.295: E/StrictMode(601): at android.app.LoadedApk.getServiceDispatcher(LoadedA pk.java:863)
09-09 12:52:35.295: E/StrictMode(601): at android.app.ContextImpl.bindService(ContextImpl.ja va:1418)
09-09 12:52:35.295: E/StrictMode(601): at android.app.ContextImpl.bindService(ContextImpl.ja va:1407)
09-09 12:52:35.295: E/StrictMode(601): at android.content.ContextWrapper.bindService(Context Wrapper.java:473)
09-09 12:52:35.295: E/StrictMode(601): at com.android.emailcommon.service.ServiceProxy.setTa sk(ServiceProxy.java:157)
09-09 12:52:35.295: E/StrictMode(601): at com.android.emailcommon.service.ServiceProxy.setTa sk(ServiceProxy.java:145)
09-09 12:52:35.295: E/StrictMode(601): at com.android.emailcommon.service.ServiceProxy.test( ServiceProxy.java:191)
09-09 12:52:35.295: E/StrictMode(601): at com.android.exchange.ExchangeService$7.run(Exchang eService.java:1850)
09-09 12:52:35.295: E/StrictMode(601): at com.android.emailcommon.utility.Utility$2.doInBack ground(Utility.java:551)
09-09 12:52:35.295: E/StrictMode(601): at com.android.emailcommon.utility.Utility$2.doInBack ground(Utility.java:549)
09-09 12:52:35.295: E/StrictMode(601): at android.os.AsyncTask$2.call(AsyncTask.java:287)
09-09 12:52:35.295: E/StrictMode(601): at java.util.concurrent.FutureTask.run(FutureTask.jav a:234)
09-09 12:52:35.295: E/StrictMode(601): at java.util.concurrent.ThreadPoolExecutor.runWorker( ThreadPoolExecutor.java:1080)
09-09 12:52:35.295: E/StrictMode(601): at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:573)
09-09 12:52:35.295: E/StrictMode(601): at java.lang.Thread.run(Thread.java:856)
09-09 12:52:35.325: W/ActivityManager(284): Unbind failed: could not find connection for android.os.BinderProxy@40fa2980


کد اکتیوی هم اینه:

package com.example.autostarttest;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;

public class AutoStartTest extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_auto_start_test);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.activity_auto_sta rt_test, menu);
return true;
}

}



کسی میدونه مشکل کجاست؟
سپاس

saeed_g21
سه شنبه 18 شهریور 1393, 22:58 عصر
کد مانیفیست رو به این صورت تغییر بده امتحان کن
<receiver android:name="AutoStart" > <intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<category android:name="android.intent.category.DEFAULT" >
</category>
</intent-filter>
</receiver>


به اینجا (http://barnamenevis.org/showthread.php?401729-%D9%86%D9%85%D9%88%D9%86%D9%87-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%87%D8%A7%DB%8C-%DA%A9%D9%88%DA%86%DA%A9-%D9%88-%D9%85%D9%81%D9%8A%D8%AF-%D8%A7%D9%86%D8%AF%D8%B1%D9%88%DB%8C%D8%AF&p=2099511&viewfull=1#post2099511)هم سر بزن یک نمونه گذاشتم

rubiks.kde
سه شنبه 18 شهریور 1393, 23:27 عصر
مشکلتون has leaked ServiceConnection هست.در حالی که سرویس شما bind شده دوباره دارید اون رو bind می کنید.محل خطا رو دنبال کنید ببینید دقیقا توی کدوم خط چنین کاری میکنید و حداقل بعد از خروج از برنامه سرویس رو unbind کنید.

sobhan1990
چهارشنبه 19 شهریور 1393, 01:10 صبح
کد مانیفیست رو به این صورت تغییر بده امتحان کن
<receiver android:name="AutoStart" > <intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<category android:name="android.intent.category.DEFAULT" >
</category>
</intent-filter>
</receiver>


به اینجا (http://barnamenevis.org/showthread.php?401729-%D9%86%D9%85%D9%88%D9%86%D9%87-%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87-%D9%87%D8%A7%DB%8C-%DA%A9%D9%88%DA%86%DA%A9-%D9%88-%D9%85%D9%81%D9%8A%D8%AF-%D8%A7%D9%86%D8%AF%D8%B1%D9%88%DB%8C%D8%AF&p=2099511&viewfull=1#post2099511)هم سر بزن یک نمونه گذاشتم

ممنون بابت پاسخ ولی مشکلم با راه حل شما حل نشد.

sobhan1990
چهارشنبه 19 شهریور 1393, 01:22 صبح
مشکلتون has leaked ServiceConnection هست.در حالی که سرویس شما bind شده دوباره دارید اون رو bind می کنید.محل خطا رو دنبال کنید ببینید دقیقا توی کدوم خط چنین کاری میکنید و حداقل بعد از خروج از برنامه سرویس رو unbind کنید.

در این برنام از سرویس استفاده نکردم.
همه کدهای برنامه رو قرار دادم. نمی دونم چه سرویسی رو باید unbind کنم.

saeed_g21
چهارشنبه 19 شهریور 1393, 01:38 صبح
در این برنام از سرویس استفاده نکردم.
همه کدهای برنامه رو قرار دادم. نمی دونم چه سرویسی رو باید unbind کنم.

آره خوب چیزی در مورد سرویس در مانیفیست برنامه شما موجود نیست!!!

این برنامه خام هست یا چیزای نوشتی ؟

برنامه ای که داده بودم رو تست کردی ؟
روی دستگاهت جواب داد ؟

saeed_g21
چهارشنبه 19 شهریور 1393, 01:41 صبح
راستی android:targetSdkVersion برنامه شما روی 8 هست !!!

افزایش بده به مثلا 18 بعد دوباره تست بزن

sobhan1990
چهارشنبه 19 شهریور 1393, 01:58 صبح
آره خوب چیزی در مورد سرویس در مانیفیست برنامه شما موجود نیست!!!

این برنامه خام هست یا چیزای نوشتی ؟

برنامه ای که داده بودم رو تست کردی ؟
روی دستگاهت جواب داد ؟

کل کدهای برنامه همین بود که گذاشتم. حتی یک خط بیشتر نیست!
در واقع برای برنامه اصلیم فعلا این مشکل هنوز رفع نشده. ضمن اینکه در برنامه اصلیم سرویس دارم ولی هنوز اندر خم این کوچه ام!

برنامه شما اصلا توی اکلیپس ایمپورت نشد! پیغام Invalid project describtion .. میداد.

saeed_g21
چهارشنبه 19 شهریور 1393, 02:13 صبح
API 19 برای اون پروژه انتخاب کرده بودم اگه API 19 نداری به چیزی که داری تغییرش بده همینطور بعدش حتما از گزینه Project گزینه Clean بزن تست کن

خلاصه اگه بازم نشد به کدهاش نگاهی بنداز

بخوای همین پروژه رو بزار واسه دانلود بگیرم تست کنم

sobhan1990
چهارشنبه 19 شهریور 1393, 02:26 صبح
مراحل رو انجام دادم. متاسفانه نتیجه نداد.
برنامه رو آپ کردم:
http://uplod.ir/fltuzfpwrl4t/AutoStartTest.rar.htm
سپاس فراوان از اینکه وقت میزارید.

saeed_g21
چهارشنبه 19 شهریور 1393, 02:36 صبح
دوست عزیز شما دوتا خطای مشهود در برنامه خود دارید

1- فایل AutoStart رو انتقال بده به داخل com.example.autostarttest
2- در مانیفیست android:name=".AutoStart" رو به android:name="AutoStart" تغییر بده یعنی [ . ] رو بردار


موفق باشی

sobhan1990
چهارشنبه 19 شهریور 1393, 02:51 صبح
خیلی لطف کردی دوست عزیز. ممنون.درست شد.

ولی یه مسئله دیگه هست. ببینید من اگر برنامه رو نصب کنم ولی اجرا نکنم و ریست میکنم برنامه اجرا نمیشه. ولی وقتی برنامه رو نصب کنم و بعد از نصب اجرا کنم و بعدش ریست کنم برنامه بعد از بوت اجرا میشه.
برنامه اصلی بنده هیچ اکتیویتی نداره. فقط یک بوت رسیور + چند تا سرویس هست(یعنی در لانچر آیکنی برای اجرا کردن نداره). با این اوصاف چطور باید اجرا شه؟