我正在写这篇文章是为了帮助其他用户在android studio中的android项目中集成 Notificare 通知服务时遇到的问题。因为我必须整合 Notificare,Segment.io,Branch.io,Google放置自动完成功能,在应用内购买,我面临的主要问题是多个库的冲突和重复输入错误。正如 Notificare 一样,它自己拥有不适用的图书馆代码,谷歌分析,播放服务和自己的通知代码。我尝试了以gradle文件方式在notificare android studio integration编译命令中提供的集成库的传统方法,但是这不起作用,因为我曾经为库中已经存在的inappbilling代码获取重复条目。 / p>
所以这是程序。
从notificare sdk source with sample下载sdk文件夹 然后将文件夹从sdk重命名为notificare,然后在notificare文件夹中创建一个gradle文件,因为它没有gradle文件,如下所示:
在notificare项目中手动创建build.gradle文件。并在其中复制以下代码:
apply plugin: 'com.android.library'
dependencies {
compile 'com.android.support:support-v4:21.0.3'
}
android {
compileSdkVersion 21
buildToolsVersion "21.1.2"
defaultConfig {
minSdkVersion 14
targetSdkVersion 21
}
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
res.srcDirs = ['res']
}
}
}
上面的代码来自this链接。
然后在libs文件夹中将 notificare-push-lib.jar 文件重命名为extn .zip解压缩zip,这样我们就可以删除与其他库冲突的内容。然后在 com 文件夹中删除 android 文件夹,该文件夹中包含 vendor-billing 文件夹,该文件夹会与您的应用内购买实施内容发生冲突。 删除文件夹后,选择文件夹的内容,如com,META-INF,然后重新选择所有3个文件夹并将其压缩为zip。
此步骤对于mac用户非常重要:
当您创建zip文件时,mac会自动创建需要删除的 __ MACOSX 文件夹,可以使用终端中的以下命令来完成:
zip -d notificare.zip __MACOSX/\*
这将删除zip中的__MACOSX文件夹。 现在使用以下命令将zip文件重命名为jar文件:
mv notificare.zip notificare.jar
复制此文件并将其替换为项目notificare libs文件夹
然后在您的主项目 app / build.gradle 文件中添加以下命令:
compile project(":notificare")
compile 'com.google.android.gms:play-services:8.4.0'
并在主项目 settings.gradle 文件中添加以下内容:
include ':app', ':notificare'
project(':notificare').projectDir = new File('notificare')
清理项目。 同步gradle。 构建它应该运行的项目,并且通知应该注册你的设备。