2010-12-14 3 views
3

작동하는 Android 애플리케이션이 있습니다. 그것은 500 개 이상의 다른 장치에서 작동합니다. 매니페스트갤럭시 탭의 ClassNotFoundException

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
package="info.decamps.droid.photoid" android:versionCode="5" 
android:versionName="1.4"> 
<application android:icon="@drawable/icon" android:label="@string/app_label" 
    android:name="PhotoIDroid" android:description="@string/app_desc" 
    android:debuggable="FALSE"> 

입니다 그러나 그것은 삼성 갤럭시 탭에서 실행하는 경우, 그것은 시작과 충돌하지 않습니다

java.lang.RuntimeException가 : 인스턴스화 응용 프로그램 정보 할 수 없음을. decamps.droid.photoid.PhotoIDroid : java.lang.ClassNotFoundException가 : 로더 dalvik.system.PathClassLoader에서 info.decamps.droid.photoid.PhotoIDroid [/data/app/info.decamps.droid.photoid-1. apk] ()android.app.ActivityThread $ PackageInfo.makeApplication android.app.ActivityThread.handleBindApplication (ActivityThread.java:4483)에서 (ActivityThread.java:670) 3000 android.app.ActivityThread.access $ (ActivityThread.java 에서 : 135) android.os.Looper.loop에서 android.os.Handler.dispatchMessage (Handler.java:99) 에서 android.app.ActivityThread $ H.handleMessage (ActivityThread.java:2181) (루퍼에 .java : 144) at android.app.ActivityThread.main (ActivityThread.java:4937) at java.lang.reflect.Method.invokeNative (기본 THOD) com.android에서 com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:868) 에서 java.lang.reflect.Method.invoke (Method.java:521) 에서. java.lang.ClassNotFoundException가 :에 의한 dalvik.system.NativeStart.main (기본 방법)에서 internal.os.ZygoteInit.main (ZygoteInit.java:626는) 는 을 info.decamps.droid.photoid.PhotoIDroid 로더 에 dalvik.system.PathClassLoader [/data/app/info.decamps.droid.photoid-1.apk] dalvik.system.PathClassLoader.findClass (PathClassLoader.java:243),536,913에서 에서 android.app.Instrumentation.newApplication (Instrumentation.java:945)에서 63,210 java.lang.ClassLoader.loadClass java.lang.ClassLoader.loadClass (ClassLoader.java:532)에서 (ClassLoader.java:573) android.app.ActivityThread $ PackageInfo.makeApplication (ActivityThread.java:660) ...에

더 (11)는 어떻게 삼성 갤럭시없는 응용 프로그램 클래스를 찾을? 해결 방법에 대한 단서가 있습니까?

나는 Samsung Galaxy 에뮬레이터에서 tis crash를 재현 할 수있었습니다.

+0

ProGuard를 사용하지 않습니다. – rds

+2

@rds :'info.decamps.droid.photoid.PhotoIDroid'의 수퍼 클래스는 무엇입니까? – CommonsWare

+0

@CommonsWare 질문에 대한 답을 잘 모르겠습니다. 나는이 클래스를 개발하지 않았지만, 그것은 매니페스트에서 안드로이드에 의해 생성 된 ['Application'] (http://developer.android.com/reference/android/app/Application.html) 클래스이다. 문서에서 "여기에 일반적으로 Application을 서브 클래스 할 필요가 없습니다." – rds

답변

0

AndroidManifest.xml에서 android:name 속성 선언을 제거했으며 이제 작동합니다.

+0

기본적으로 더 이상 사용하지 않음을 의미합니다. 당신의 커스텀'Application' 클래스. 만약 당신이 그것을 작동한다면, 멋지다. 그렇지 않다면, 아마도 슈퍼 클래스 ('Application')가 거기에있을 것이기 때문에, static initializers 등을 체크 아웃하면 빠진 부분을 물어볼 것이다. – CommonsWare

+0

고마워요,하지만 사용자 지정 응용 프로그램 클래스를 작성하지 않았습니다. 그것은 클래스가 존재하지 않는 경우 대부분의 모바일 (및 에뮬레이터) 'android : name' 무시합니다. 어쩌면, 그것은 최근에 API에 추가 된 (따라서 오래된 장치들) – rds

+1

android : name은 1.0 이후로 존재하며 지정된 클래스를 찾을 수없는 경우 앱을 항상 중단해야합니다. 이상한. – hackbod

관련 문제