Android log cat显示android.content.pm.PackageManager $ NameNotFoundException:应用程序包com.google.android.backup

时间:2015-10-31 06:08:56

标签: android

我是一个更新鲜的android,当我尝试在avd中运行我的应用程序时,在日志中发现以下异常,显示不幸的是我的应用程序无法运行,请帮助

 android.content.pm.PackageManager$NameNotFoundException: Application package com.google.android.backup not found
        at android.app.ContextImpl.createPackageContextAsUser(ContextImpl.java:2172)
        at android.app.ContextImpl.createPackageContext(ContextImpl.java:2148)
        at android.content.ContextWrapper.createPackageContext(ContextWrapper.java:671)
        at com.google.android.gms.backup.an.<init>(SourceFile:47)
        at com.google.android.gms.backup.BackupTransportMigratorService.f(SourceFile:248)
        at com.google.android.gms.backup.BackupTransportMigratorService.b(SourceFile:196)
        at com.google.android.gms.backup.BackupTransportMigratorService.onHandleIntent(SourceFile:131)
        at android.app.IntentService$ServiceHandler.handleMessage(IntentService.java:65)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:135)

我的Android清单如下所示

         <?xml version="1.0" encoding="utf-8"?>
           <manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="cornex.criminalintent" >

<application
    android:allowBackup="true"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity android:name=".CrimeListActivity">
        <intent-filter>
            <action android:name="android.intent.action.MAIN"/>
            <category android:name="android.intent.category.LAUNCHER"/>
        </intent-filter>
    </activity>
    <activity
        android:name=".CrimePagerActivity"
        android:label="@string/app_name" >

    </activity>
</application>

2 个答案:

答案 0 :(得分:0)

这是因为PackageManager无法在您的设备,模拟器等上找到名为com.google.android.backup的软件包。

安装它,然后尝试再次运行该应用程序。

请阅读this

答案 1 :(得分:0)

要制作数据备份应用程序,您需要使用Google备份服务注册您的应用程序。这已在示例中解释。注册后,您必须在AndroidManifest.XML中指定其密钥

 <application
   android:allowBackup="true"
   android:backupAgent="YOUR_BACKUP_AGENT">

   <meta-data 
      android:name="com.google.android.backup.api_key"
      android:value="YOUR_API_KEY" />
</application>

Android提供BackUpAgentHelper类来处理数据备份的所有操作。要使用此类,您必须使用它扩展您的类。其语法如下:相应的备份代理可以实现,如下面的清单所示。

import android.app.backup.BackupAgentHelper;

public class YOUR_BACKUP_AGENT extends BackupAgentHelper {    

} 

要备份的持久性数据是两种形式之一。它可以是SharedPrefrences,也可以是File。 Android在SharedPreferencesBackupHelper和FileBackupHelper各自的类中支持两种类型的备份。

要使用SharedPerefernceBackupHelper,您需要使用sharedPerefernces文件的名称实例化其对象。其语法如下 -

static final String File_Name_Of_Prefrences = "myPrefrences";
SharedPreferencesBackupHelper helper = new SharedPreferencesBackupHelper(this, File_Name_Of_Prefrences);

您需要做的最后一件事是通过指定备份密钥字符串和帮助程序对象来调用addHelper方法。其语法如下 -

addHelper(PREFS_BACKUP_KEY, helper);

addHelper方法会自动将给定数据子集的帮助器添加到代理的配置中。

有关详细信息,请参阅this Tutorialthis article