这样的事情可能吗?
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="@string/package_name"
android:versionCode="1"
android:versionName="@string/version_name">
上面的代码给了我一个错误:
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>
如果我用包的名称替换@string/package_name
,android:versionName
似乎设置正确。
所以问题是为什么在android:versionName
工作时包名不起作用?
修改 有没有办法使用外部文件中指定的包名?
答案 0 :(得分:6)
AFAIK,您只能使用@resource/name
xmlns(android
)中定义的属性http://schemas.android.com/apk/res/android
格式访问XML资源。
由于未在android模式中定义包,因此它无法以这种方式访问资源,而versionName可以。
答案 1 :(得分:2)
@Lev,我知道它来得很晚,但是它可以帮助其他人。
在某些情况下,我还想使用@string/package_name
。
我可以通过在app/build.gradle
中创建字符串资源来完成此操作,如下所示。
defaultConfig {
// your other code
applicationId 'com.example'
resValue "string", "package_name", applicationId
// your other code
}