Java Android:转换为Dalvik格式失败,错误为1

Java Android:转换为Dalvik格式失败,错误为1,java,android,export,manifest,dalvik,Java,Android,Export,Manifest,Dalvik,我正在开发一款Android游戏,为了让人们报告错误/崩溃,我最近在我的项目中添加了第一个库: 这是一个非常有用的库,它直接允许用户以不同的方式报告崩溃。到目前为止,图书馆运转良好 它仍然可以将游戏直接上传到我的手机上,包括ACRA的成功调试模式;没有ProGuard,但我无法再导出.APK文件。 每次按下导出按钮时,都会出现以下错误: 转换为Dalvik格式失败,错误为1 这是我发现的: 当存在两个同名的类/包时会导致此错误,例如LibaryX有org.a.b.c.Sample类,Libary

我正在开发一款Android游戏,为了让人们报告错误/崩溃,我最近在我的项目中添加了第一个库: 这是一个非常有用的库,它直接允许用户以不同的方式报告崩溃。到目前为止,图书馆运转良好

它仍然可以将游戏直接上传到我的手机上,包括ACRA的成功调试模式;没有ProGuard,但我无法再导出.APK文件。 每次按下导出按钮时,都会出现以下错误:

转换为Dalvik格式失败,错误为1

这是我发现的:

当存在两个同名的类/包时会导致此错误,例如LibaryX有org.a.b.c.Sample类,LibaryY也有org.a.b.c.Sample类 不同的方法对某些人有效,因此如果您自己有错误,请确保测试以下内容: A两个库具有完全相同的包/类->删除其中一个库中的类

一个Jar被检测两次,因为它位于例如项目源文件夹和Java构建路径库中

C更新Proguard通常也会修复它,并将新的Proguard JAR放在[Android SDK文件夹]\tools\Proguard\lib中

D清洁项目也帮助了许多人

我已经尝试了所有这些步骤,甚至还有一些我不记得的步骤,但没有一个对我的案例有效

所以我问自己:到底是什么导致了这个错误?因为在添加我的第一个库ACRA之前,一切都很好。我删除了这个库,并一步一步地重新实现了它。直到一个步骤导致错误

所以:ACRA设置的一部分是创建一个扩展android.app.Application的新类。我已经在我的AndroidManifest.xml中链接了这个应用程序类:Application->Name=GameApplication。 该错误直接出现在清单文件中链接新GameApplication类之后。当我将AndroidManifest.xml:Application中的“Name”设置回null时,我可以再次导出游戏

另外,我还发现,通过在AndroidManifest.xml框中取消标记Define-an-application标记也可以防止错误的发生,这将禁用我的整个GameActivity类,该类反过来处理整个游戏

我认为ACRA库本身并不是问题所在:只要初始化ACRA的GameApplication类没有链接到Android清单文件中,我就可以成功导出包含ACRA库的项目

这是我的AndroidManifest.xml

    <?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="org.black_ixx.manawar"
    android:versionCode="1"
    android:versionName="1.1" >
    
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

    <uses-sdk
        android:minSdkVersion="13"
        android:targetSdkVersion="19" /><application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" android:name="org.black_ixx.goldenplosive.GameApp">
        <activity android:name="org.black_ixx.manawarlegends.ManaWarActivity" android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>
当我删除ACRA.init行时,我可以再次导出文件而不会出现任何问题,但由于我想使用ACRA,我必须保留它。但到底有什么问题呢O

解决了的
刚刚在ACRA Github页面找到ProGuard部分并修复了错误。这是由于proguard project.txt中缺少行造成的。

最好在提供的答案框中描述解决方案,并接受勾号。这比只在问题文本中编辑某些内容要好,因为这不会导致问题被标记为完整。
package org.black_ixx.goldenplosive;

import org.acra.ACRA;
import org.acra.ReportingInteractionMode;
import org.acra.annotation.ReportsCrashes;
import org.black_ixx.manawar.R;
import android.app.Application;


@ReportsCrashes(formKey = "", // will not be used
mailTo = "goldenplosivestudios@gmx.de",
mode = ReportingInteractionMode.TOAST,
resToastText = R.string.acra_toast_text)

public class GameApp extends Application{
    @Override
    public void onCreate() {
        super.onCreate();
        ACRA.init(this); //This line causes the error!!
    }
}