
package com.android.ide.eclipse.adt.internal.build;

import org.eclipse.osgi.util.NLS;

public class Messages extends NLS {
    private static final String BUNDLE_NAME = "com.android.ide.eclipse.adt.internal.build.build_messages"; //$NON-NLS-1$

    public static String AAPT_Error;

    public static String AAPT_Exec_Error_s;

    public static String AAPT_Exec_Error_d;

    public static String AAPT_Exec_Error_Other_s;

    public static String Added_s_s_Needs_Updating;

    public static String AIDL_Exec_Error_s;

    public static String AIDL_Exec_Error_d;

    public static String AIDL_Java_Conflict;

    public static String ApkBuilder_Certificate_Expired_on_s;

    public static String ApkBuilder_JAVA_HOME_is_s;

    public static String ApkBuilder_Packaging_s;

    public static String ApkBuilder_Packaging_s_into_s;

    public static String ApkBuilder_s_Conflict_with_file_s;

    public static String ApkBuilder_Signing_Key_Creation_s;

    public static String ApkBuilder_Unable_To_Gey_Key;

    public static String ApkBuilder_UnableBuild_Dex_Not_loaded;

    public static String ApkBuilder_Update_or_Execute_manually_s;

    public static String ApkBuilder_Using_Default_Key;

    public static String ApkBuilder_Using_s_To_Sign;

    public static String Checking_Package_Change;

    public static String Compiler_Compliance_Error;

    public static String Couldnt_Locate_s_Error;

    public static String Dalvik_Error_d;

    public static String Dalvik_Error_s;

    public static String Delete_Obsolete_Error;

    public static String DexWrapper_Dex_Loader;

    public static String DexWrapper_Failed_to_load_s;

    public static String DexWrapper_s_does_not_exists;

    public static String DexWrapper_SecuryEx_Unable_To_Find_API;

    public static String DexWrapper_SecuryEx_Unable_To_Find_Field;

    public static String DexWrapper_SecuryEx_Unable_To_Find_Method;

    public static String DexWrapper_Unable_To_Execute_Dex_s;

    public static String DX_Jar_Error;

    public static String Failed_To_Get_Output;

    public static String Final_Archive_Error_s;

    public static String Incompatible_VM_Warning;

    public static String Marker_Delete_Error;

    public static String No_SDK_Setup_Error;

    public static String Nothing_To_Compile;

    public static String Output_Missing;

    public static String Package_s_Doesnt_Exist_Error;

    public static String Preparing_Generated_Files;

    public static String Project_Has_Errors;

    public static String Refreshing_Res;

    public static String Removing_Generated_Classes;

    public static String Requires_1_5_Error;

    public static String Requires_Class_Compatibility_s;

    public static String Requires_Compiler_Compliance_s;

    public static String Requires_Source_Compatibility_s;

    public static String s_Contains_Xml_Error;

    public static String s_Doesnt_Declare_Package_Error;

    public static String s_File_Missing;

    public static String s_Missing_Repackaging;

    public static String s_Modified_Manually_Recreating_s;

    public static String s_Modified_Recreating_s;

    public static String s_Removed_Recreating_s;

    public static String s_Removed_s_Needs_Updating;

    public static String Start_Full_Apk_Build;

    public static String Start_Full_Pre_Compiler;

    public static String Skip_Post_Compiler;

    public static String Start_Full_Post_Compiler;

    public static String Start_Inc_Apk_Build;

    public static String Start_Inc_Pre_Compiler;

    public static String Unparsed_AAPT_Errors;

    public static String Unparsed_AIDL_Errors;

    public static String Xml_Error;

    public static String Proguard_Exec_Error;

    static {
        // initialize resource bundle
        NLS.initializeMessages(BUNDLE_NAME, Messages.class);
    }

    private Messages() {
    }
}
