AndroidはSharedPreferencesの取得に失敗し、Appが起動できませんでした
2512 ワード
説明:
あるappは別のappのSharedPreferencesにアクセスし、プログラムが起動した後、インタフェースが表示されずにカードが死んでしまい、何のヒントもありません.
エラーの原因:
アプリケーション呼び出しcreatePackageContextは失敗したが、例外情報も与えられなかった.最後に/data/data/パスの下のパケット名を表示することによってcomをチェックする.dog.ethernetパッケージ名が存在しないため、正しいパッケージ名に変更するのは正常です. 現在のパケットの下にethernet SharedPreferencesを生成するコードを注釈してから正しいデータを取得することができ、注釈しなければ、取得したデータが現在のパケットの下にあるethernet SharedPreferencesのようで、この問題を特定するのに長い時間がかかった.
結果の取得
Android.mk
あるappは別のappのSharedPreferencesにアクセスし、プログラムが起動した後、インタフェースが表示されずにカードが死んでしまい、何のヒントもありません.
エラーの原因:
アプリケーション呼び出しcreatePackageContextは失敗したが、例外情報も与えられなかった.
/*
* SharedPreferences sp = getSharedPreferences("ethernet",
* //Context.MODE_WORLD_WRITEABLE);
* Context.MODE_WORLD_READABLE | Context.MODE_WORLD_WRITEABLE);
*/
Context ethernetAppContext = null;
try {
ethernetAppContext = createPackageContext("com.dog.ethernet", Context.CONTEXT_IGNORE_SECURITY);
} catch (NameNotFoundException e) {
new AlertDialog.Builder(this).setTitle("ERROR").setMessage("Please install ethernet application.").setPositiveButton("confirm", null ).show();
System.exit(-1);
e.printStackTrace();
}
SharedPreferences sharedPreferences = ethernetAppContext.getSharedPreferences("ethernet", Context.MODE_WORLD_READABLE | Context.MODE_WORLD_WRITEABLE);
Log.e("info", "-------------------------------------------------");
Log.e("info", sharedPreferences.getString("conn_mode", ""));
Log.e("info", sharedPreferences.getString("mIpaddr", ""));
Log.e("info", sharedPreferences.getString("mDns", ""));
Log.e("info", sharedPreferences.getString("mProxyIp", ""));
Log.e("info", sharedPreferences.getString("mProxyPort", ""));
Log.e("info", sharedPreferences.getString("mProxyExclusionList", ""));
Log.e("info", "-------------------------------------------------");
結果の取得
E/info ( 5353): -------------------------------------------------
E/info ( 5353): manual
E/info ( 5353): 10.10.10.10
E/info ( 5353): 8.8.8.8
E/info ( 5353): -------------------------------------------------
Android.mk
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE_TAGS := optional
LOCAL_SRC_FILES := $(call all-java-files-under, com)
LOCAL_PACKAGE_NAME := ethernetCF
LOCAL_CERTIFICATE := platform
include $(BUILD_PACKAGE)
# Use the folloing include to make our test apk.
include $(call all-makefiles-under,$(LOCAL_PATH))