我不确定这个问题是否可以回答,但我感到绝望了,因此希望有更多经验的人可能知道发生了什么。我以前没用过Urbanairship。
我继承了一个项目,并将其从eclipse迁移到android studio。我无法使其在eclipse中运行,但是设法使它在android studio中运行的程度与从商店下载该应用程序时(它是一个非常有问题的应用程序)一样多。
我尝试过以多种不同方式添加urbanairship依赖关系,从使用迁移过程处理原始项目到移交的android studio文件夹,到将其从原始项目中完全删除,然后从头开始导入,以及。
它将安装到设备上,不会崩溃,也不会执行大多数应做的工作,而logcat(仅错误)给出以下信息:
Failed to find provider info for xxxx.urbanairship.provider
- UALib: Failed to insert in UrbanAirshipProvider.
java.lang.IllegalArgumentException: Unknown URL content://xxxx.urbanairship.provider/preferences
at android.content.ContentResolver.insert(ContentResolver.java:1203)
at com.urbanairship.UrbanAirshipResolver.insert(UrbanAirshipResolver.java:77)
at com.urbanairship.PreferenceDataStore$Preference.writeValue(PreferenceDataStore.java:447)
at com.urbanairship.PreferenceDataStore$Preference.access$000(PreferenceDataStore.java:355)
at com.urbanairship.PreferenceDataStore$Preference$1.run(PreferenceDataStore.java:387)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:818)
当我转到
UrbanAirshipResolver.java:77
处的链接时,会显示此窗口。我尝试选择源(我曾尝试下载,但未产生任何结果),该jar位于库中,因此我选择了它。
然后,它会无限期显示“附加”,并且每次我运行该错误都会重复相同的错误。
这是清单中的应用程序标记之间:
<provider
android:name="com.urbanairship.UrbanAirshipProvider"
android:authorities="xxxx.urbanairship.provider"
android:exported="true"
android:multiprocess="true"
android:permission="xxxx.permission.UA_DATA"/>
就像我在原始项目中缺少目录一样。
在这个阶段,我完全不知所措。如果任何人都熟悉,将非常感谢您的帮助和指导。
最佳答案
实际上是“ xxx.urbanairship.provider”吗? “ xxx”应与应用程序ID匹配。我将删除Urban Airship的日食样式库版本以及Urban Airship的所有清单条目。然后按照http://docs.urbanairship.com/platform/android.html安装它。它将自动正确合并清单值。确保在build.gradle文件中为应用程序模块设置了应用程序ID。