Android 4“没有找到内容提供商或许可撤销”

时间:2013-04-25 07:43:48

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

我有一个Android应用程序,在Android 2-2和2-3上完美运行。但是当我尝试在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上运行?

4 个答案:

答案 0 :(得分:3)

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

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

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

答案 1 :(得分:1)

此消息可能表示设备上的内部存储空间不足。有一定程度的Android开始抱怨并且不会安装新的应用程序。我看到&#34;没有找到内容提供商以获得许可撤销&#34;伴随着错误,例如&#34;空间不足&#34;或&#34;安装错误代码:-20&#34;或&#34; INSTALL_FAILED_MEDIA_UNAVAILABLE&#34;或&#34;包安装状态为 - 20&#34; - 所有意思都是一样的。就我而言,解决方案是释放一些存储空间(清除缓存/数据,卸载一些应用程序)。

答案 2 :(得分:0)

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

答案 3 :(得分:0)

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中)