だからそれは
int id = ressources.getIdentifier(title、 "string"、 "com.package");
が返さ0
れます。これは、指定されたリソースが見つからないことを意味します。は有効なリソースIDではないため、後続の呼び出しressources.getIdentifer()
で例外が発生します。0
ここにいくつかのデバッグ/代替のアイデアがあります:
- そのライブラリ内のリソースにアクセスできますか、それともそのリソースに固有の問題
title
()ですか、それともそのタイプのリソース(文字列)に固有の問題ですか?別の図書館の資料にアクセスできますか?
- jarファイルとしてライブラリにアクセスしていますか?コードをjarすることはできますが、jarからリソースにアクセスすることはできません。
Android-複数のアプリケーションで使用するカスタムライブラリを作成することは可能ですか?
コード
String fullyQualifiedResourceName = "com.package:string/sample";
int id = ressources.getIdentifier(title, null, null);
if (id == 0) {
Log.e(TAG, "Lookup id for resource '"+fullyQualifiedResourceName+"' failed";
// graceful error handling code here
}
コード
final String resourceName= "sample";
final int id;
try {
final Class resourceType = com.package.R.string.class;
final Field field = resourceType.getField(title);
id = field.getInt(null);
} catch (final Exception e) {
Log.e(TAG, "Lookup id for resource '"+resourceName+"' failed";
// graceful error handling code here
}
Android、文字列からリソースIDを取得しますか?
http://daniel-codes.blogspot.com/2009/12/dynamically-retrieveing-resources-in.html