Возможны ли относительные имена пакетов в AndroidManifest.xml? - PullRequest
2 голосов
/ 11 октября 2011

У меня есть следующий манифест (фрагмент):

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

    <application
        android:icon="@drawable/ic_launcher_icon"
        android:label="@string/app_name"
        android:name=".activity.MainApplication">
    ....

, где MainApplication.java живет в com.uniquename.appname.activity

Тем не менее, когда я запускаю это, я получаю следующую ошибку:

10-10 23: 12: 33.327: ОШИБКА / AndroidRuntime (7783): java.lang.RuntimeException: Невозможно создать экземпляр приложения com.uniquename.appname.MainApplication: java.lang.ClassNotFoundException: com.uniquename.appname.MainApplication в загрузчике dalvik.system.PathClassLoader [/system/framework/android.test.runner.jar:/data/app/com.uniquename.appname-1.apk]

, что кажется мне странным, поскольку я явно попросил его посмотреть в подпакете Activity. Я видел примеры других, использующих эту относительную технику, но она не работает для меня. Что не так с моей декларацией? Спасибо!

1 Ответ

5 голосов
/ 11 октября 2011

Данг, всегда тот случай, когда ты часами пытаешься это выяснить, в конце концов сдайся и спроси сообщество, а затем через 2 секунды найди ответ. В моем случае ответ - да, можно использовать относительные пути в файле manifest.xml. Мои проблемы возникли из-за большого упражнения по рефакторингу, которое работало нормально, за исключением того, что я забыл обновить несколько пользовательских имен пакетов в моих XML-файлах (пометка «Обновить полные имена пакетов в не-Java-файлах» помогла бы!)

В любом случае, эти устаревшие ссылки на пакеты вызвали сбой во время выполнения. К сожалению, полученное вами сообщение об ошибке вводит в заблуждение, и для меня оно вообще не имеет ничего общего с моим декларацией манифеста. Исправление имен пакетов в моих XML-файлах (не касаясь моего манифеста) решило проблему для меня. Надеюсь, это когда-нибудь поможет кому-то еще.

...