2013-03-13 8 views
6

Czy coś takiego jest możliwe?Czy mogę użyć łańcucha zasobów dla nazwy pakietu?

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
     package="@string/package_name" 
     android:versionCode="1" 
     android:versionName="@string/version_name"> 

Powyższy kod daje mi błąd:

C:\android-sdk\tools\ant\build.xml:539: Application package '@string/package_name' must have a minimum of 2 segments.

moich strun są zdefiniowane w RES/strings.xml takiego:

<?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> 

Gdybym zastąpić @string/package_name z nazwą pakiet, android:versionName, wydaje się być ustawiony prawidłowo.
Pytanie brzmi, dlaczego nazwa pakietu nie działa, gdy działa android:versionName?

Edytuj: Czy istnieje sposób użycia nazwy pakietu podanej w pliku zewnętrznym?

Odpowiedz

5

AFAIK, dostęp do zasobów XML można uzyskać tylko przy użyciu formatu @resource/name dla atrybutów zdefiniowanych w android xmlns (http://schemas.android.com/apk/res/android).

Ponieważ pakiet nie jest zdefiniowany w schemacie systemu Android, nie może uzyskać dostępu do zasobów w ten sposób, podczas gdy nazwa wersji może.

+0

Czy istnieje inny sposób użycia ciągu nazwy pakietu z zewnętrznego pliku? – Lev

+0

@Lev Nie jestem tego świadomy, przepraszam. –