我可以使用资源字符串作为包名吗?

Lev*_*Lev 8 android packages android-manifest

这样的事情可能吗?

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="@string/package_name"
      android:versionCode="1"
      android:versionName="@string/version_name">
Run Code Online (Sandbox Code Playgroud)

上面的代码给了我一个错误:

C:\ android-sdk\tools\ant\build.xml:539:应用程序包'@ string/package_name'必须至少有2个段.

我的字符串在res/strings.xml中定义,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="app_name">My app</string>
    <string name="version_name">1.00</string>
    <string name="package_name">com.mycompany.myapp</string>
Run Code Online (Sandbox Code Playgroud)

如果我用@string/package_name包的名称替换,android:versionName似乎设置正确.
所以问题是为什么包名不起作用android:versionName

编辑: 有没有办法使用外部文件中指定的包名?

Rag*_*ood 6

AFAIK,您只能使用xmlns()中@resource/name定义的属性格式访问XML资源.androidhttp://schemas.android.com/apk/res/android

由于未在android模式中定义包,因此它无法以这种方式访问​​资源,而versionName可以.