我有一个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上运行?
答案 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中)