【问题标题】:App keeps force closing应用程序不断强制关闭
【发布时间】:2011-07-24 13:07:42
【问题描述】:

每次我尝试运行此代码时,应用程序强制关闭

package com.test.sms;

import android.app.Activity;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.provider.ContactsContract.Contacts;

public class SMSLookupActivity extends Activity {
private String lookupKey;

/** Called when the activity is first created. */
@SuppressWarnings("unused")
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    Uri lookupUri = Uri.withAppendedPath(Contacts.CONTENT_LOOKUP_URI, lookupKey);

            Cursor c = getContentResolver().query(lookupUri, new String[]{Contacts.DISPLAY_NAME}, lookupKey, null, lookupKey );
    try {
        c.moveToFirst();
        String displayName = c.getString(0);
    } finally {
        c.close();
    }     
    }
}

日志猫

07-24 14:11:54.835:错误/DatabaseUtils(1472):将异常写入包裹 07-24 14:11:54.835: 错误/DatabaseUtils(1472): java.lang.SecurityException: Permission Denial: 读取 com.android.providers.contacts.HtcContactsProvider2 uri content://com.android.contacts/contacts/lookup/ null from pid=6286, uid=10226 需要 android.permission.READ_CONTACTS 07-24 14:11:54.835: 错误/DatabaseUtils(1472): 在 android.content.ContentProvider$Transport.enforceReadPermission(ContentProvider.java:307) 07-24 14:11:54.835: 错误/DatabaseUtils(1472): 在 android.content.ContentProvider$Transport.bulkQuery(ContentProvider.java:185) 07-24 14:11:54.835: 错误/DatabaseUtils(1472): 在 android.content.ContentProviderNative.onTransact(ContentProviderNative.java:134) 07-24 14:11:54.835: 错误/DatabaseUtils(1472): 在 android.os.Binder.execTransact(Binder.java:320) 07-24 14:11:54.835:错误/DatabaseUtils(1472):在 dalvik.system.NativeStart.run(本机方法) 07-24 14:11:54.835:调试/电话应用程序(1465):EVENT_QUERY_MO_PACKAGES 07-24 14:11:54.865: WARN/ResourceType(1577): getEntry 失败,因为 entryIndex 187 超出了 entryCount 123 类型 07-24 14:11:54.875: WARN/ResourceType(1577): 在包 0 中获取 0x7f0200bb (t=1 e=187) 的条目失败(错误 -2147483647) 07-24 14:11:54.875:调试/Gun Bros - AirMail Push(2081):CoreReceiver 操作:android.intent.action.PACKAGE_REMOVED 07-24 14:11:54.875:调试/Gun Bros - AirMail Push(2081):已删除包:com.xenom.sms 07-24 14:11:54.885: 调试/AndroidRuntime(6286): 关闭虚拟机 07-24 14:11:54.885: WARN/dalvikvm(6286): threadid=1: 线程以未捕获的异常退出 (group=0x4001d5a0) 07-24 14:11:54.905:调试/接收器(3657):处理程序已启动 07-24 14:11:54.935:错误/AndroidRuntime(6286):致命异常:主要 07-24 14:11:54.935: 错误/AndroidRuntime(6286): java.lang.RuntimeException: 无法启动活动 ComponentInfo{com.xenom.sms/com.xenom.sms.SMSLookupActivity}: java.lang.SecurityException: 权限拒绝:从 pid=6286,uid=10226 读取 com.android.providers.contacts.HtcContactsProvider2 uri content://com.android.contacts/contacts/lookup/null 需要 android.permission.READ_CONTACTS 07-24 14:11:54.935: 错误/AndroidRuntime(6286): 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1816) 07-24 14:11:54.935: 错误/AndroidRuntime(6286): 在 android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1837) 07-24 14:11:54.935: 错误/AndroidRuntime(6286): 在 android.app.ActivityThread.access$1500(ActivityThread.java:132) 07-24 14:11:54.935: 错误/AndroidRuntime(6286): 在 android.app.ActivityThread$H.handleMessage(ActivityThread.java:1033) 07-24 14:11:54.935: 错误/AndroidRuntime(6286): 在 android.os.Handler.dispatchMessage(Handler.java:99) 07-24 14:11:54.935: 错误/AndroidRuntime(6286): 在 android.os.Looper.loop(Looper.java:143) 07-24 14:11:54.935: 错误/AndroidRuntime(6286): 在 android.app.ActivityThread.main(ActivityThread.java:4196) 07-24 14:11:54.935: 错误/AndroidRuntime(6286): 在 java.lang.reflect.Method.invokeNative(Native Method) 07-24 14:11:54.935: 错误/AndroidRuntime(6286): 在 java.lang.reflect.Method.invoke(Method.java:507) 07-24 14:11:54.935: 错误/AndroidRuntime(6286): 在 com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 07-24 14:11:54.935: 错误/AndroidRuntime(6286): 在 com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 07-24 14:11:54.935:错误/AndroidRuntime(6286):在 dalvik.system.NativeStart.main(本机方法) 07-24 14:11:54.935: 错误/AndroidRuntime(6286): 由: java.lang.SecurityException: Permission Denial: 读取 com.android.providers.contacts.HtcContactsProvider2 uri content://com.android.contacts/contacts /lookup/null from pid=6286, uid=10226 需要 android.permission.READ_CONTACTS 07-24 14:11:54.935: 错误/AndroidRuntime(6286): 在 android.os.Parcel.readException(Parcel.java:1322) 07-24 14:11:54.935: 错误/AndroidRuntime(6286): 在 android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:160) 07-24 14:11:54.935: 错误/AndroidRuntime(6286): 在 android.database.DatabaseUtils.readExceptionFromParcel(DatabaseUtils.java:114) 07-24 14:11:54.935: 错误/AndroidRuntime(6286): 在 android.content.ContentProviderProxy.bulkQueryInternal(ContentProviderNative.java:372) 07-24 14:11:54.935: 错误/AndroidRuntime(6286): 在 android.content.ContentProviderProxy.query(ContentProviderNative.java:408) 07-24 14:11:54.935: 错误/AndroidRuntime(6286): 在 android.content.ContentResolver.query(ContentResolver.java:264) 07-24 14:11:54.935: 错误/AndroidRuntime(6286): 在 com.xenom.sms.SMSLookupActivity.onCreate(SMSLookupActivity.java:21) 07-24 14:11:54.935: 错误/AndroidRuntime(6286): 在 android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1093) 07-24 14:11:54.935: 错误/AndroidRuntime(6286): 在 android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1780) 07-24 14:11:54.935: 错误/AndroidRuntime(6286): ... 11 更多 07-24 14:11:54.945: 调试/电话应用 (1465): -- N1 =2 07-24 14:11:54.995: WARN/ActivityManager(1331): 强制完成活动 com.xenom.sms/.SMSLookupActivity 07-24 14:11:55.045: WARN/ResourceType(1577): getEntry 失败,因为 entryIndex 1041 超出了 entryCount 123 类型 07-24 14:11:55.045:调试/接收器(3657):接收消息:com.xenom.sms 2 07-24 14:11:55.045: WARN/ResourceType(1577): 在包 0 中获取 0x7f020411 (t=1 e=1041) 的条目失败(错误 -2147483647) 07-24 14:11:55.045: WARN/ResourceType(1577): getEntry 失败,因为 entryIndex 1042 超出了 entryCount 123 类型 07-24 14:11:55.045: WARN/ResourceType(1577): 在包 0 中获取 0x7f020412 (t=1 e=1042) 的条目失败(错误 -2147483647) 07-24 14:11:55.055: WARN/ResourceType(1577): getEntry 失败,因为 entryIndex 1043 超出了 entryCount 123 类型 07-24 14:11:55.055: WARN/ResourceType(1577): 在包 0 中获取 0x7f020413 (t=1 e=1043) 条目失败(错误 -2147483647) 07-24 14:11:55.055: WARN/ResourceType(1577): getEntry 失败,因为 entryIndex 1419 超出了 entryCount 123 类型 07-24 14:11:55.055: WARN/ResourceType(1577): 在包 0 中获取 0x7f02058b (t=1 e=1419) 的条目失败(错误 -2147483647) 07-24 14:11:55.055: 调试/电话应用 (1465): -- N2 =0 07-24 14:11:55.065: WARN/ResourceType(1577): getEntry 失败,因为 entryIndex 545 超出了 entryCount 123 类型 07-24 14:11:55.075: WARN/ResourceType(1577): 在包 0 中获取 0x7f020221 (t=1 e=545) 的条目失败(错误 -2147483647) 07-24 14:11:55.095: DEBUG/dalvikvm(6166): GC_EXPLICIT 释放 538K,54% 释放 2919K/6343K,外部 0K/512K,暂停 2181ms 07-24 14:11:55.125: DEBUG/dalvikvm(6214): GC_CONCURRENT 释放 149K,45% 释放 3497K/6279K,外部 17K/516K,暂停 43ms+5ms 07-24 14:11:55.165: 调试/电话应用 (1465): -- N3 =0 07-24 14:11:55.205: WARN/ResourceType(1577): getEntry 失败,因为 entryIndex 187 超出了 entryCount 123 类型 07-24 14:11:55.215: WARN/ResourceType(1577): 在包 0 中获取 0x7f0200bb (t=1 e=187) 的条目失败(错误 -2147483647) 07-24 14:11:55.215: WARN/ResourceType(1577): getEntry 失败,因为 entryIndex 1041 超出了 entryCount 123 类型 07-24 14:11:55.215: WARN/ResourceType(1577): 在包 0 中获取 0x7f020411 (t=1 e=1041) 的条目失败(错误 -2147483647) 07-24 14:11:55.215: WARN/ResourceType(1577): getEntry 失败,因为 entryIndex 1042 超出了 entryCount 123 类型 07-24 14:11:55.215: WARN/ResourceType(1577): 在包 0 中获取 0x7f020412 (t=1 e=1042) 的条目失败(错误 -2147483647) 07-24 14:11:55.215: WARN/ResourceType(1577): getEntry 失败,因为 entryIndex 1043 超出了 entryCount 123 类型 07-24 14:11:55.215: WARN/ResourceType(1577): 在包 0 中获取 0x7f020413 (t=1 e=1043) 条目失败(错误 -2147483647) 07-24 14:11:55.215: WARN/ResourceType(1577): getEntry 失败,因为 entryIndex 1419 超出了 entryCount 123 类型 07-24 14:11:55.215: WARN/ResourceType(1577): 在包 0 中获取 0x7f02058b (t=1 e=1419) 的条目失败(错误 -2147483647) 07-24 14:11:55.215: WARN/ResourceType(1577): getEntry 失败,因为 entryIndex 545 超出了 entryCount 123 类型 07-24 14:11:55.215: WARN/ResourceType(1577): 在包 0 中获取 0x7f020221 (t=1 e=545) 的条目失败(错误 -2147483647) 07-24 14:11:55.265:信息/ApplicationChangeReceiverAbc(6166):android.intent.action.PACKAGE_REMOVED 07-24 14:11:55.265:INFO/ApplicationChangeReceiverAbc(6166):com.xenom.sms 已删除 07-24 14:11:55.265:INFO/MountReceiver(6166):禁用 com.xenom.sms 07-24 14:11:55.275: INFO/ggheart(1861): onStop

【问题讨论】:

  • 好吧,我想我已经粘贴了

标签: android contacts android-contacts


【解决方案1】:
<uses-permission android:name="android.permission.READ_CONTACTS" /> 

将此权限添加到您的清单

【讨论】:

    【解决方案2】:

    您是否添加了读取权限?如果没有,则添加它

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-12-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多