AndroidManifest.xml中可能有相对的软件包名称吗?

Chr*_*ght 2 android android-manifest

我有以下清单(摘要):

<?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">
    ....
Run Code Online (Sandbox Code Playgroud)

在那里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]

这让我感到奇怪,因为我已经明确要求它查看活动子包。我已经看到了其他人使用这种相对技术的示例,但是对我来说不起作用。我的声明怎么了?谢谢!

Chr*_*ght 5

Dang,通常情况下,您花了数小时试图找出答案,最后放弃并询问社区,然后2秒后发现答案。就我而言,答案是肯定的,可以在manifest.xml文件中使用相对路径。我的问题源于一个大型的重构​​工作,该工作很好,除了我忘记更新xml文件中的一些自定义软件包名称(勾选“更新非Java文件中的完全合格的软件包名称”会有所帮助!)。

无论如何,这些最新的软件包引用在运行时导致了失败。不幸的是,您收到的错误消息具有误导性,对我而言,这与我的清单声明完全无关。在我的xml文件中修复程序包名称(无需触摸清单)对我来说解决了这个问题。希望有一天能对别人有所帮助。