2016-03-01 6 views
0

Я пытаюсь расширить FloatingActionButton в своем приложении. Когда я пытаюсь построить, я получаю ошибку компилятора. Если удалить класс, который расширяет FloatingActionButton то мое приложение будет собиратьРасширение FloatingActionButton

:app:transformClassesWithDexForDebug 
UNEXPECTED TOP-LEVEL EXCEPTION: 
Error:Execution failed for task ':app:transformClassesWithDexForDebug'. 
> com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command '/Library/Java/JavaVirtualMachines/jdk1.8.0_60.jdk/Contents/Home/bin/java'' finished with non-zero exit value 2 

ошибка, кажется, происходит только тогда, когда я добавить методы в класс расширения.

Это компилирует

public class TriedFAB extends FloatingActionButton { 
    public TriedFAB(Context context) { 
     super(context); 
    } 

    public TriedFAB(Context context, AttributeSet attrs) { 
     super(context, attrs); 
    } 

    public TriedFAB(Context context, AttributeSet attrs, int defStyleAttr) { 
     super(context, attrs, defStyleAttr); 
    } 
// private void failCompile(){ 
// 
// } 
} 

Это приводит к ошибке компилятора

public class TriedFAB extends FloatingActionButton { 
    public TriedFAB(Context context) { 
     super(context); 
    } 

    public TriedFAB(Context context, AttributeSet attrs) { 
     super(context, attrs); 
    } 

    public TriedFAB(Context context, AttributeSet attrs, int defStyleAttr) { 
     super(context, attrs, defStyleAttr); 
    } 
    private void failCompile(){ 

    } 
} 

Edit 3:

Похоже, мое приложение является слишком большим и ударил предел DEX

+0

Это сообщение об ошибке не говорят нам ничего, вы должны получить сообщение об ошибке для 'Неожиданного верхнего уровня EXCEPTION' – Bhargav

+0

Введите код. Также, каков ваш вопрос? –

+0

Это единственное сообщение об ошибке, в котором я вижу, откуда я могу получить сообщение об ошибке? – user1634451

ответ

1

попробовать как this.Declare in xml

<android.support.design.widget.FloatingActionButton 
    android:id="@+id/myfloatingbutton" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:src="@android:drawable/ic_dialog_email" 

    /> 

Используйте как это, то

floatingActionButton=(FloatingActionButton)findViewById(R.id.myfloatingbutton); 
    //handle FloatingActionButton Click 
    floatingActionButton.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      Toast.makeText(getApplicationContext(),"FloatingActionButton is Clicked",Toast.LENGTH_SHORT).show(); 
     } 
    }); 

Refer here for more.

+0

Я пытаюсь расширить класс FloatingActionButton – user1634451

+0

@ user1634451 ok получил его, попробую, и тогда я смогу дать предложения –

0

Хит предела DEX увидеть не в сообщениях, но в Gradle консолях

UNEXPECTED TOP-LEVEL EXCEPTION: 
com.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65536 
    at com.android.dx.merge.DexMerger$6.updateIndex(DexMerger.java:484) 
    at com.android.dx.merge.DexMerger$IdMerger.mergeSorted(DexMerger.java:261) 
    at com.android.dx.merge.DexMerger.mergeMethodIds(DexMerger.java:473) 
    at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:161) 
    at com.android.dx.merge.DexMerger.merge(DexMerger.java:188) 
    at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:504) 
    at com.android.dx.command.dexer.Main.runMonoDex(Main.java:334) 
    at com.android.dx.command.dexer.Main.run(Main.java:277) 
    at com.android.dx.command.dexer.Main.main(Main.java:245) 
    at com.android.dx.command.Main.main(Main.java:106) 
+0

Попробуйте использовать библиотеку MultiDexing –

Смежные вопросы