2010-01-29 3 views
3

내 코드에서 * .apk 파일을 만들고 IIS에 파일을 저장 한 다음 여러 Android 휴대 전화에 다운로드 할 수있었습니다. 설치시 응용 프로그램이 예상대로 작동합니다. 전화를 다시 부팅 한 후APK 배포 문제

그러나, 응용 프로그램 이름이 메뉴의 활동의 완전 유자격 자바 클래스 이름으로 변경됩니다 (그래서 는 "MyActivity"는 "com.mycompany.MyActivity"가됩니다), 때을 메뉴> 설정으로 이동하려고 시도하면 안드로이드가 강제로 닫히도록하는 오류가 발생합니다. 내 응용 프로그램.

DDMS를 보면 설치시 사실에도 불구하고 이 내 기본 설정 활동을 찾을 수 없다는 오류가 표시되는 것을 알 수 있습니다.

Windows XP에서 Eclipse를 사용하고 있으며 테스트 할 수있는 에 여러 Android 기기가 있습니다.

어떤 일이 벌어지고 있는지 알 수 있습니까?

의 AndroidManifest.xml :

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.company.app" 
    android:versionCode="1" 
    android:versionName="1.0"> 
<application android:icon="@drawable/logo" android:label="@string/app_name"> <!--android:debuggable="true">--> 
    <activity android:name="com.company.app.ActivityMain" 
       android:label="@string/app_name"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
    <activity android:name="com.company.app.Preferences" 
       android:label="@string/app_settings"> 
       <intent-filter> 
       <category android:name="android.intent.category.PREFERENCE"></category> 
       <action android:name="android.intent.action.MAIN"></action> 
       </intent-filter> 
    </activity> 
    <service android:name="com.company.app.Service"></service> 
</application> 
<uses-sdk android:minSdkVersion="3" /> 
<uses-permission android:name="android.permission.READ_PHONE_STATE"/> 
<uses-permission android:name="android.permission.INTERNET"/> 
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/> 
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> 
</manifest> 
+0

질문을 편집하고 매니페스트를 게시 할 수 있습니까? 또한, 다양한 전화기에서 이러한 현상이 발생 했습니까? 아니면 하나만 시도 했습니까? 또한 앱의 '메뉴> 설정'이 무엇입니까? – CommonsWare

+0

재부팅 전후에 응용 프로그램 정보 (설정 -> 응용 프로그램 -> 응용 프로그램 관리 -> 응용 프로그램)는 무엇을 말합니까? –

+0

내 질문을 편집하여 내 매니페스트를 포함 시켰습니다. 나는 주로 HTC Hero와 함께 일해 왔지만 몇 가지 장치 (HTC Droid Eris 또는 HTC Tattoo)에서 시도해 보았습니다. 내 기본 설정 활동을 열려면 메뉴> 설정이 나의 메뉴입니다. 재부팅하기 전에 설정> 응용 프로그램> 응용 프로그램 관리에서 app/app_name 문자열의 값으로 내 응용 프로그램을 나열합니다. 다시 부팅하면 com.company.app가 읽습니다. – Brandon

답변

2

그래서 나는 마침내이 일을하는 데 사용할 수 있습니다. HTC Hero (HTC Droid Eris)의 패키지 설치 프로그램에는 몇 가지 문제가 있다고 생각합니다.

휴대 전화에서 응용 프로그램을 제거하고 내 주요 활동 이름을 변경 한 다음 영웅에 다시 배포했습니다. 나는 즉시 "강제 폐쇄"를 시작했다. DDMS에 장치를 연결하고 오류를 살펴 보았습니다. 아직도 내 옛날 활동 이름을 찾고 있었어. 나는 공장을 초기화하고 업데이트 된 이름으로 같은 패키지를 다시 설치했으며 모든 것이 예상대로 작동한다.

그래서 패키지 설치 관리자가 이전 매니페스트 또는 일부 내용을 캐싱하고있는 것으로 보입니다. 실제로 정확히 무슨 일이 벌어지고 있는지 확실하지 않습니다. 시간이 있으면 더 많이 가지고 놀 수 있습니다.

누군가 다른 사람이이 문제를 확인할 수 있는지 모르겠다. HTC로 처리해야 할 부분일까요?

0

시도는이 매니페스트

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.company.app" 
    android:versionCode="1" 
    android:versionName="1.0"> 
<application android:icon="@drawable/logo" android:label="@string/app_name"> <!--android:debuggable="true">--> 
    <activity android:name=".ActivityMain" 
       android:label="@string/app_name"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 
      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
    <activity android:name=".Preferences" 
       android:label="@string/app_settings"> 
       <intent-filter> 
       <category android:name="android.intent.category.PREFERENCE"></category> 
       <action android:name="android.intent.action.MAIN"></action> 
       </intent-filter> 
    </activity> 
    <service android:name=".Service"></service> 
</application> 
<uses-sdk android:minSdkVersion="3" /> 
<uses-permission android:name="android.permission.READ_PHONE_STATE"/> 
<uses-permission android:name="android.permission.INTERNET"/> 
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/> 
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> 
</manifest> 
+0

이전에보고 있던 것과 동일한 동작이 발생했습니다. 다르게 이름을 한정하는 것이 문제라고 생각하지 않습니다. 별도의 테스트 프로젝트를 만들어서 좀 더 놀아 본 후에는 다른 작업을 추가하기 전까지는 모든 것이 잘된 것처럼 보입니다. 어쩌면이 활동을 선언하는 것이 잘못된 것입니까? – Brandon