안드로이드 시스템이 BackupAgent를 사용하여 Google 클라우드로 백업을 결정할 때부터 몇 가지 (4) 가지 오류 보고서가 있습니다. SharedPreferencesBackupHelper를 사용하고 있습니다. 이 (내 실제 패키지 이름이 com.xxx.yyy 아래 교체)처럼 스택 추적 같습니다안드로이드 시스템이 BackupAgent와 결합 할 때 ClassNotFoundException이 발생했습니다
java.lang.RuntimeException: Unable to create BackupAgent com.xxx.yyy.MyBackupAgent: java.lang.ClassNotFoundException: com.xxx.yyy.MyBackupAgent in loader dalvik.system.PathClassLoader[/mnt/asec/com.xxx.yyy-1/pkg.apk]
at android.app.ActivityThread.handleCreateBackupAgent(ActivityThread.java:2114)
at android.app.ActivityThread.access$3200(ActivityThread.java:132)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1138)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:143)
at android.app.ActivityThread.main(ActivityThread.java:4196)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:507)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.ClassNotFoundException: com.xxx.yyy.MyBackupAgent in loader dalvik.system.PathClassLoader[/mnt/asec/com.xxx.yyy-1/pkg.apk]
at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:240)
at java.lang.ClassLoader.loadClass(ClassLoader.java:551)
at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
at android.app.ActivityThread.handleCreateBackupAgent(ActivityThread.java:2064)
... 10 more
내가 자신도 일단 프로그램이 다운을 가지고, 안드로이드 2.3를 실행하는 내 자신의 전화에. 삼. 이 프로그램 충돌로 나를 괴롭히는 이유는 패키지에 "MyBackupAgent"클래스가 있다는 것을 확실히 알고 있기 때문입니다. 클라우드로의 백업이 충돌이 발생한 동일한 전화에서 작동하는지도 확실합니다.
나는이 문제에 대한 이유가 무엇인지에 대한 해결책을 찾기 위해 인터넷에서 많은 것을 수색했다. 비슷한 문제에서 발견 된 모든 사례, 즉 클래스가 apk에 존재하더라도 ClassClassLoader에서 ClassNotFoundException이 던져 지는데 공통점이 하나 있습니다. 그들은 모두 "-1"또는 "-2"와 apk가 설치된 패키지 이름 디렉토리의 끝이 있습니다. 내 오류 보고서에서
, 이들에 대한 다른 이름은 어디에 내 백업 클래스의 dalvik.system.PathClassLoader 검색 :
/mnt/asec/com.xxx.yyy-1/pkg.apk
/mnt/asec/com.xxx.yyy-2/pkg.apk
/data/app/com.xxx.yyy-1.apk
어쩌면 내가 여기에 잘못된 호수에서 낚시를하고 있지만, 패키지 이름 디렉토리의 끝에 "-1"과 "-2"가 붙은 것은 무엇을 의미합니까? 그리고 이것과 관련된 문제가있을 수 있습니까? 내 sharedpreferences의 백업 일정을 시스템에 알려주기 때문에 문제가 내 코드에있는 것은 아닌지 의심 스럽다. 그런 다음 안드로이드 시스템은 미래의 적절한 시점에 백업 작업을 수행합니다. 여기서 충돌이 발생합니다. 스택 추적을 보면 제 코드는 언급되지 않았습니다. 그것은 apk에서 나의 백업 클래스를 찾는 것을 끝내고 어떤 알려지지 않은 이유로 찾을 수없는 모든 시스템 루틴이다.Manifest의 application 태그에 android : name 속성을 설정하지 않았습니다.이 태그는 비슷한 오류를 일으킬 수 있습니다.
누구에게이 문제의 원인이 될 수있는 단서가 있습니까? 또는 더 나은 방법은 이러한 일이 발생하지 않도록하는 것입니다.
인 텐트는 어떻게 등록됩니까? 당신의 명단을 볼 수 있을까요? – Ian