如果有人能帮我指出正确的方向,我将永远充满活力! 我到处搜索,似乎无法找到解决方案来挽救我的生命。 :(
我在遵循 instructions (here) 后编译我的应用程序时遇到问题将 ACRA 4.5.0
添加到我的 android 项目。
我运行了 gradlew 构建,它告诉我所有 org.acra
导入都不存在。我将 acra-4.5.jar
文件添加到我的 libs
文件夹中,并使用 android-studios 的“添加为库”选项将其添加到项目中。当我编写导入时,android studio 似乎发现一切正常,而且我没有任何语法错误,但它不会编译,所以我可以在我的设备上测试它。尽管库看起来一切正常,但在编译时我收到错误。
我将 name 属性添加到 android list 中,据我所知,一切看起来都很好,但显然不是。我确定我只是错过了一些愚蠢的东西。
我只能猜测是 android studio 没有正确导入库。但就像我说的那样,它没有显示任何语法错误,而且我可以按住 Ctrl 键并单击每个错误的来源,所以我真的不知道
如有任何帮助,我们将不胜感激! 提前致谢
编辑-
我还按照 this post 中的建议运行了 gradlew clean
,但仍然不走运:(。清理完成后,android studio 显示 R.* 的语法错误??我关闭并重新打开 android studio,语法错误消失了,但项目仍然无法编译。它继续说 acra不存在。
这是我的 ACRA 子应用程序扩展:
/project/project/src/main/java/com/domain/project/catchEm.java
package com.domain.project;
import android.app.Application;
import org.acra.ACRA;
import org.acra.annotation.ReportsCrashes;
import org.acra.ReportingInteractionMode;
@ReportsCrashes(formKey = "", // will not be used
mailTo = "email@email.com",
mode = ReportingInteractionMode.DIALOG,
resToastText = R.string.crash_toast_text,
resDialogText = R.string.crash_dialog_text,
resDialogIcon = android.R.drawable.ic_dialog_info,
resDialogTitle = R.string.crash_dialog_title,
resDialogCommentPrompt = R.string.crash_dialog_comment_prompt,
resDialogOkToast = R.string.crash_dialog_ok_toast)
public class catchEm extends Application {
@Override
public void onCreate() {
super.onCreate();
// The following line triggers the initialization of ACRA
ACRA.init(this);
}
}
这是我的 list
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="com.domain.project"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="17" />
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.READ_LOGS" />
<application
android:icon="@drawable/ic_launcher"
android:name=".catchEm"
android:label="@string/app_name"
android:theme="@style/AppTheme"
tools:ignore="AllowBackup">
<activity
android:name="com.domain.project.Main"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".someActivity"
android:label="@string/label"/>
<activity android:name="org.acra.CrashReportDialog"
android:theme="@android:style/Theme.Dialog"
android:launchMode="singleInstance"
android:excludeFromRecents="true"
android:finishOnTaskLaunch="true" />
</application>
以及 Gradlew 构建报告
C:\Users\owner\AndroidStudioProjects\project>gradlew build
The TaskContainer.add() method has been deprecated and is scheduled to be removed in Gradle 2.0. Please use the create() method instead.
:project:prepareDebugDependencies
:project:compileDebugAidl UP-TO-DATE
:project:generateDebugBuildConfig UP-TO-DATE
:project:mergeDebugAssets UP-TO-DATE
:project:compileDebugRenderscript UP-TO-DATE
:project:mergeDebugResources UP-TO-DATE
:project:processDebugManifest UP-TO-DATE
:project:processDebugResources UP-TO-DATE
:project:compileDebug
project\project\src\main\java\com\domain\project\catchEm.java:4: error: package org.acra does not exist
import org.acra.ACRA;
^
project\project\src\main\java\com\domain\project\catchEm.java:5: error: package org.acra.annotation does not exist
import org.acra.annotation.ReportsCrashes;
^
project\project\src\main\java\com\domain\project\catchEm.java:6: error: package org.acra does not exist
import org.acra.ReportingInteractionMode;
^
project\project\src\main\java\com\domain\project\catchEm.java:9: error: cannot find symbol
@ReportsCrashes(formKey = "", // will not be used
^
symbol: class ReportsCrashes
project\project\src\main\java\com\domain\project\catchEm.java:25: error: cannot find symbol
ACRA.init(this);
^
symbol: variable ACRA
location: class catchEm
5 errors
:project:compileDebug FAILED
FAILURE: Build failed with an exception.
最佳答案
出于某种原因,我检查了我的 build.gradle 文件,没有 acra 依赖项,即使 android studio 在我的依赖项列表中显示了它。
所以我将 compile files('libs/acra-4.5.0.jar')
添加到项目 build.gradle
文件的依赖项区域,现在一切正常完美!希望这也能帮助其他人。
buildscript {
repositories {
maven { url 'http://repo1.maven.org/maven2' }
}
dependencies {
classpath 'com.android.tools.build:gradle:0.4'
}
}
apply plugin: 'android'
dependencies {
compile files('libs/android-support-v4.jar')
compile files('libs/acra-4.5.0.jar')
}
android {
compileSdkVersion 17
buildToolsVersion "17.0.0"
defaultConfig {
minSdkVersion 7
targetSdkVersion 17
}
}
关于java - 导入后 Android 应用程序无法编译/查找 ACRA 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16747673/