带有 Android Studio 的 Fabric
Posted
技术标签:
【中文标题】带有 Android Studio 的 Fabric【英文标题】:Fabric with Android Studio 【发布时间】:2015-05-28 13:16:20 【问题描述】:我正在尝试通过 Fabric 将 Crashlytics 安装到我的 Android Studio 项目中,但遇到以下错误:
Gradle tasks [:App:generateDebugSources, :App:generateDebugandroidTestSources, :Customer:generateDebugSources, :Customer:generateDebugAndroidTestSources, :PDFViewCtrlTools:generateDebugSources, :PDFViewCtrlTools:generateDebugAndroidTestSources]
Crashlytics was applied to an android-library project.
Android-library support is currently an incubating feature.
Contact support@fabric.io with any issues.
Error:A problem occurred configuring project ':Customer'.
> Could not resolve all dependencies for configuration ':Customer:_debugCompile'.
> Could not find com.crashlytics.sdk.android:crashlytics:2.2.1.
Searched in the following locations:
https://jcenter.bintray.com/com/crashlytics/sdk/android/crashlytics/2.2.1/crashlytics-2.2.1.pom
https://jcenter.bintray.com/com/crashlytics/sdk/android/crashlytics/2.2.1/crashlytics-2.2.1.jar
file:/Users/mes/Documents/Eclipse/sdk/extras/android/m2repository/com/crashlytics/sdk/android/crashlytics/2.2.1/crashlytics-2.2.1.pom
file:/Users/mes/Documents/Eclipse/sdk/extras/android/m2repository/com/crashlytics/sdk/android/crashlytics/2.2.1/crashlytics-2.2.1.jar
file:/Users/mes/Documents/Eclipse/sdk/extras/google/m2repository/com/crashlytics/sdk/android/crashlytics/2.2.1/crashlytics-2.2.1.pom
file:/Users/mes/Documents/Eclipse/sdk/extras/google/m2repository/com/crashlytics/sdk/android/crashlytics/2.2.1/crashlytics-2.2.1.jar
Required by:
project:Customer:unspecified > project:App:unspecified
Information:BUILD FAILED
这是我的 build.gradle:
buildscript
repositories
maven url 'https://maven.fabric.io/public'
dependencies
classpath 'io.fabric.tools:gradle:1.+'
apply plugin: 'com.android.library'
apply plugin: 'io.fabric'
repositories
mavenCentral()
maven url 'https://maven.fabric.io/public'
dependencies
compile fileTree(dir: 'libs', include: '*.jar')
compile 'com.google.android.gms:play-services:6.1.71'
compile 'com.android.support:appcompat-v7:21.0.3'
compile project(":PDFViewCtrlTools")
compile('com.crashlytics.sdk.android:crashlytics:2.2.1')
transitive = true;
android
compileSdkVersion 21
buildToolsVersion "21.1.2"
lintOptions
// If true, stop the gradle build if errors are found
abortOnError false
//ignore 'ValidFragment'
这是我的 AndroidManifest.xml
<activity
android:name="com.ecrome.tabook.MainActivity"
android:label="@string/app_name"
android:launchMode="singleTop" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
<meta-data
android:name="io.fabric.ApiKey"
android:value="xxxxxx" />
</activity>
任何想法为什么我收到错误并且我无法编译应用程序?
【问题讨论】:
签出:***.com/questions/23991988/… 确保 build.gradle 属于您的 module 【参考方案1】:有两个 build.gradle 在 project/build.gradle 的第一个添加:
buildscript
repositories
//ADD this Line
maven url 'https://maven.fabric.io/public'
dependencies
//ADD this Line
classpath 'io.fabric.tools:gradle:1.22.2'
在第二个 app/build.gradle
buildscript
repositories
//ADD this Line
maven url 'https://maven.fabric.io/public'
dependencies
//ADD this Line
classpath 'io.fabric.tools:gradle:1.22.2'
apply plugin: 'io.fabric'
repositories
maven url 'https://maven.fabric.io/public'
dependencies
compile('com.crashlytics.sdk.android:crashlytics:2.6.8@aar')
transitive = true;
AndroidManifest
<uses-permission android:name="android.permission.INTERNET" />
<application
<meta-data
android:name="io.fabric.ApiKey"
android:value="yourKey" />
<application/>
主活动
protected void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
Fabric.with(this, new Crashlytics());
setContentView(R.layout.activity_main);
【讨论】:
【参考方案2】:更改这部分,添加@aar
符号
compile('com.crashlytics.sdk.android:crashlytics:2.2.1@aar')
transitive = true;
通过这种方式,您将从 repo 下载 aar 工件。
【讨论】:
我正在尝试将 Crashlytics 集成到我的库项目中,这是一个单独的项目,但将其引用到我的主项目中。面临同样的问题!如果您已成功将 Crashlytics 集成到库项目中,请分享! 我也确认了它是否正在将AAR文件下载到库项目的explored-aar文件夹中,所以它有AAR文件,但不知道为什么它显示找不到AAR文件的错误进入主项目! 嗨@PareshMayani!。图书馆有aar。但是您如何管理主要项目?它是本地依赖还是与库的 Maven 依赖? 主项目有本地依赖。 我有他们关于设置 Crashlytics into the library subprojects 的文档,因此似乎可以将 Crashlytics 集成到库项目中。而且我也遵循了这个文档中提到的步骤,但又出现了同样的错误!【参考方案3】:您犯的一个错误是您在活动中添加了元数据。
它应该在<activity
标签之外和<application
标签之内
并确保您在 Application 或 Activity 启动中初始化了一次结构。
Fabric.with(mContext, new Crashlytics());
【讨论】:
以上是关于带有 Android Studio 的 Fabric的主要内容,如果未能解决你的问题,请参考以下文章
带有 Google Play 服务的 Android Studio
尝试在 Android Studio 中创建带有文本的 listView 图像
带有 Flutter 更新的 Android Studio 导致了索引循环