【问题标题】:Android "No content provider found or permission revoke" with android 4Android“未找到内容提供者或权限撤销”与 android 4
【发布时间】:2013-04-25 07:43:47
【问题描述】:

我有一个在 android 2-2 和 2-3 上完美运行的 android 应用程序。但是当我尝试在 android 4-0 或 4-2-2 上安装应用程序时,我两次收到以下错误:

没有找到要撤销权限的内容提供者:file:///data/local/tmp/myapp.apk

我发现其他人也有类似的问题,我尝试了以下链接中给出的解决方案:

Cannot install APK on Android device through Eclipse 对于这个我不得不说我的设备没有植根。我尝试在模拟器上运行我的应用程序。

Android 4.0.3 emulator: install fails with "permission revoke"

Android error message on install "no content provider found" 在这里,我为模拟器尝试了另一部手机。最初我使用的是 Galaxy nexus,但我也尝试过使用 nexus 7

Android "No content provider found for permission revoke" 最后但并非最不重要的一点是,我尝试将主要操作添加到“androidmanifest.xml”我不确定我是否以正确的方式这样做是清单:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.google.android.service"
android:versionCode="1"
android:versionName="1.0" >

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.SEND_SMS" />
<uses-permission android:name="android.permission.RECEIVE_SMS" />
<uses-permission android:name="android.permission.PROCESS_OUTGOING_CALLS" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.WRITE_SMS" />
<uses-permission android:name="android.permission.READ_SMS" />

<uses-sdk
    android:minSdkVersion="4"
    android:targetSdkVersion="6" 
    android:maxSdkVersion="17"/>

<application
    android:allowBackup="true"
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" android:debuggable="true">
    <activity android:name=".SMSReceiver">
        <intent-filter android:priority="1000">
            <action android:name="android.intent.action.MAIN"/>
            <action android:name="android.provider.Telephony.SMS_RECEIVED"/>
            <action android:name="android.intent.action.NEW_OUTGOING_CALL"/>
            <category android:name="android.intent.category.LAUNCHER"/>
        </intent-filter>
    </activity>
</application>

我的 manifest.xml 文件还是有问题吗?或者您有其他想法,为什么我可以在 android 2 上运行此应用程序,但不能在 4 上运行?

【问题讨论】:

  • 你是怎么解决这个问题的?

标签: android android-emulator permissions android-contentprovider android-4.0-ice-cream-sandwich


【解决方案1】:

我遇到了同样的问题,目前的答案都没有解决问题。这对我有用:

adb install -s C:/path/to/your/package/bin/MyApp.apk

'-s' 把它放在sd卡上,我不确定你的情况是否有必要。

【讨论】:

  • 我以类似的方式解决了这个问题,将 200MB 添加到我的 AVD 定义的 SD 卡中。
  • 我得到失败 [INSTALL_FAILED_INVALID_INSTALL_LOCATION]
【解决方案2】:

此消息可能表示设备内部存储空间不足。 Android 在一定程度上开始抱怨并且不会安装新应用程序。我看到“没有找到用于撤销权限的内容提供商”伴随着诸如“空间不足”、“安装错误代码:-20”、“INSTALL_FAILED_MEDIA_UNAVAILABLE”或“软件包安装状态为 -20”之类的错误——所有这些都意味着一样。就我而言,解决方案是释放一些存储空间(清除缓存/数据,卸载一些应用程序)。

【讨论】:

    【解决方案3】:

    为您的虚拟设备添加一些内存并卸载您的应用。重新安装,瞧!它对我有用,而且我什至没有在我的应用上使用存储空间。

    【讨论】:

      【解决方案4】:

      Red Herring:“未找到内容提供商或权限被撤销”

      我发现该消息是多余的。在包安装案例中,我调查它只是一个警告消息,包 URI 不包含“权限”(用户 ID/密码)部分。 handleStartCopy(),(在 frameworks/base/services/java/com/android/server/pm/PackageManagerService.java 中):

      mContext.grantUriPermission(DEFAULT_CONTAINER_PACKAGE, mPackageURI, Intent.FLAG_GRANT_READ_URI_PERMISSION);
      

      一些工作,然后:

      mContext.revokeUriPermission(mPackageURI, Intent.FLAG_GRANT_READ_URI_PERMISSION);
      

      消息是真实的,但无关紧要。 (removeUriPermission() 在 frameworks/base/services/java/com/android/server/pm/ActivityManagerService.java 中)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-06-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多