android - 从 IntelliJ 使用 Crashlytics 运行 Android 应用程序

标签 android maven intellij-idea crashlytics

我正在尝试使用 Maven 将 Crashlytics 集成到我们的 Android 项目中。 当从命令行 mvn clean package 时,我已经设置了所有必需的插件并执行并完成构建。 当运行从命令行构建的应用程序时 - 一切正常。

从 IntelliJ 运行应用程序时出现问题。

我认为所有 Crashlytics 魔法都发生在执行生成资源阶段时:

<plugin>
    <groupId>com.crashlytics</groupId>
    <artifactId>crashlytics-maven</artifactId>
    <version>1.0.3</version>
    <executions>
        <execution>
            <id>GenerateResources</id>
                <goals>
                    <goal>GenerateResources</goal>
                </goals>
        </execution>
        <execution>
            <id>CleanupResources</id>
            <goals>
                <goal>CleanupResources</goal>
            </goals>
        </execution>
    </executions>
</plugin>

此插件已添加到我的应用程序 pom.xml 中:

<build>
    <sourceDirectory>src</sourceDirectory>

    <plugins>
        <plugin>
            <groupId>com.crashlytics</groupId>
            <artifactId>crashlytics-maven</artifactId>
            <!-- full configuration declared in parent pom.xml -->
        </plugin>
        ... other plugins...
    <plugins>
</build>

所以 - 问题是 - 当 IntelliJ 构建我的 APK 时,我如何执行这个目标?

应用程序运行时出现的错误:

ERROR/AndroidRuntime(11626): FATAL EXCEPTION: main
        java.lang.RuntimeException: Unable to create application lt.my.app.MyApplication: com.crashlytics.android.CrashlyticsMissingDependencyException: Crashlytics did not find a required runtime dependency. To configure your build environment, visit: http://www.crashlytics.com/api/v1/.../android/confirm/lt.my.app
        at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5085)
        at android.app.ActivityThread.access$1300(ActivityThread.java:162)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1436)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:158)
        at android.app.ActivityThread.main(ActivityThread.java:5777)
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:511)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1083)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:850)
        at dalvik.system.NativeStart.main(Native Method)
        Caused by: com.crashlytics.android.CrashlyticsMissingDependencyException: Crashlytics did not find a required runtime dependency. To configure your build environment, visit: http://www.crashlytics.com/api/v1/.../android/confirm/lt.my.app
        at com.crashlytics.android.j.a(SourceFile:37)
        at com.crashlytics.android.Crashlytics.a(SourceFile:770)
        at com.crashlytics.android.Crashlytics.start(SourceFile:157)
        at com.crashlytics.android.Crashlytics.start(SourceFile:135)
        at lt.my.app.MyApplication.onCreate(MyApplication.java:32)
        at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:1012)
        at android.app.ActivityThread.handleBindApplication(ActivityThread.java:5082)

更新(07-24):

接受的答案应该有效,但如果您重新下载并重新安装插件 - 它应该适用于 native IntelliJ 构建器。尽管(今天)它在 Ubuntu 机器上启动 IntelliJ 时崩溃了。

最佳答案

我能够让它工作的方法是进入右侧的 Maven Projects 选项卡,选择 Plugins,选择 crashlytics,然后在 GenerateResources 目标上右键单击并选择“Execute Before Make”

Example

关于android - 从 IntelliJ 使用 Crashlytics 运行 Android 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17563601/

相关文章:

Android 实时音频分析

java - Maven:必须是有效版本,但为 'RELEASE'

android - 如何启用 Jack Compiler 支持?

intellij-idea - 如何关闭 IntelliJ 编辑器中的无限空白?

Android OverlayItem 不显示消息

android - 在 Android 上验证 EditTextPreference

java.net.ConnectException : Failed to connect to/127. 0.0.1:9080 Realm 对象服务器

java - JUnit 测试抛出 java.lang.NoClassDefFoundError

maven - Docker-compose - 使用 maven 构建,可重用 maven 存储库

intellij-idea - 使用 IntelliJ 发现 Jar