安卓工程修改包名后 Failed to find provider info for com.android...provider问题
原因:
1. 多处含包名文件须同时更改
2. Manifest里<provider />的设置问题
解决办法:
1. 右键修改包名之前取消 Project -> Build Automatica 选项
2. 工程名的修改:右键工程 Android Tools -> rename application package
(以上完成后勾选 Project -> Build Automatica 选项,并Clean)
3. Manefest里:
<provider
android:name="com.uustudio.unote.provider.NotepadProvider"
android:authorities="com.uustudio.unote.provider"
android:exported="false">
</provider>
其中authrities不会自动修改,须手动检查并修改,它是授权常量的声明,须在src找到常量申明的java文件,手动修改其值,使与 android:authorities="com.uustudio.unote.provider" 保持一致。
/**授权常量*/
public static final String AUTHORITY="com.uustudio.unote.provider";
android:exported="false"为只在本应用内部数据库调用,若要开放,改为true后可添加:tools:ignore,同时在Manifest标签中申明<manifest ... xmlns:tools="http://schemas.android.com/tools" ...>
<provider
tools:ignore="ExportedContentProvider"
android:exported="true"
android:name="Contentprovider"
android:authorities="umb.con.apps.vid" />