Tôi đang cố đặt android:versionName
trong tệp kê khai android của mình làm tham chiếu đến tài nguyên chuỗi được lưu trữ trong tệp tài nguyên bên ngoài.Đặt android: versionName làm tham chiếu đến chuỗi tài nguyên dẫn đến NullPointerException trong trình mô phỏng
Dưới đây là một đoạn trích từ AndroidManifest.xml
tôi:
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
package="com.toycorporation"
android:versionCode="@integer/version_code"
android:versionName="@string/version_name"
>
và nội dung của file build.xml nằm dưới res/values
disrectory của dự án của tôi:
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:android="http://schemas.android.com/apk/res/android">
<item type="string" name="build_date">03/15/2012</item>
<item type="integer" name="version_code">315281</item>
<item type="string" name="version_name">3.15.28.1</item>
</resources>
Sau đó tôi cố gắng để lấy lại số phiên bản để hiển thị nó trên màn hình Giới thiệu về ứng dụng của tôi.
PackageInfo packageInfo = getPackageManager().getPackageInfo(getPackageName(),0);
Log.d("PackageInfo", "Version name: " + String.valueOf(packageInfo.versionName));
Mô tả sự cố:
Khi tôi xây dựng ứng dụng và tự động cài đặt nó trên thiết bị HTC của tôi tất cả mọi thứ hoạt động hoàn hảo. Tên phiên bản được chuyển qua tham chiếu và trên màn hình Giới thiệu, tôi nhận được giá trị tên phiên bản được ghi trong nhật ký. Nhưng khi tôi cố gắng xây dựng ứng dụng và khởi chạy nó trên trình giả lập, tôi nhận được null
thay vì giá trị tên phiên bản.
Tôi đã cố gắng xây dựng và cài đặt ứng dụng cho trình giả lập bằng Eclipse và IDEA. Vì vậy, có vẻ như vấn đề không liên quan đến IDE.
UPDATE:
Một điều thêm xuất hiện mà không làm việc với việc sử dụng đó của versionName
và versionCode
. Không thể triển khai ứng dụng cho Google Play. Các lỗi sau xuất hiện:
Các tập tin không hợp lệ: ERROR nhận 'android: Mã phiên bản' thuộc tính: thuộc tính không phải là một giá trị số nguyên
sử dụng ' 3.15.28.1 ' hoạt động? –
Không, không. Tôi vừa cố thêm tài nguyên chuỗi đơn giản vào 'strings.xml' và sử dụng tham chiếu đến nó trong' AndroidManifest.xml' như @Espiandev khuyên. Vẫn không có may mắn. –
Bản sao của http://stackoverflow.com/questions/6018079/reference-an-integer-resource-for-android-manifest-versioncode –