带有甜蜜警报对话框库的Android studio 3.0错误

时间:2017-11-09 06:44:35

标签: android

单击以显示对话框,发生此错误

  

java.lang.RuntimeException:未知的动画名称:   cn.pedant.SweetAlert.Rotate3dAnimation error:null

有人一步一步解决问题吗?

8 个答案:

答案 0 :(得分:10)

使用此库与新功能相同 https://jitpack.io/p/Leogiroux/sweet-alert-dialog

答案 1 :(得分:3)

将此库添加到app/build.gradle

dependencies {
    ...
    implementation 'com.github.f0ris.sweetalert:library:1.5.1'
}

用法:

SweetAlertDialog pDialog = new SweetAlertDialog(this, SweetAlertDialog.PROGRESS_TYPE);
pDialog.getProgressHelper().setBarColor(Color.parseColor("#A5DC86"));
pDialog.setTitleText("Loading");
pDialog.setCancelable(false);
pDialog.show();

有关进度的更多用法,请阅读THIS

答案 2 :(得分:1)

顺便说一下,对于那些仍然关注这个话题的人:

这种情况正在发生,因为它无法将50%字符串从pivotX / pivotY转换为需要的整数' 50'

OptAnimationLoader.java中的这一行失败,特别是对.newInstance(c, attrs);的调用

anim = (Animation) Class.forName(name).getConstructor(Context.class, AttributeSet.class).newInstance(c, attrs);

我分叉了回购并将50%更改为50并且有效。这是我看到的错误:

java.lang.RuntimeException: Unknown animation name: cn.pedant.SweetAlert.Rotate3dAnimation error:null
    at cn.pedant.SweetAlert.OptAnimationLoader.createAnimationFromXml(OptAnimationLoader.java:77)                      
    at cn.pedant.SweetAlert.OptAnimationLoader.createAnimationFromXml(OptAnimationLoader.java:64)
    at cn.pedant.SweetAlert.OptAnimationLoader.createAnimationFromXml(OptAnimationLoader.java:41)
    at cn.pedant.SweetAlert.OptAnimationLoader.loadAnimation(OptAnimationLoader.java:22)

为了记录,这个仓库没有维护,你应该在https://github.com/pedant/sweet-alert-dialog/切换到@thomper的分叉。

答案 3 :(得分:1)

将此库添加到app/build.gradle

dependencies { ... implementation 'com.github.f0ris.sweetalert:library:1.5.1' }

这将解决您的问题。

答案 4 :(得分:1)

谢谢,这解决了我的问题:

dependencies {
  ...
  implementation 'com.github.f0ris.sweetalert:library:1.5.1'
}

答案 5 :(得分:1)

我找到了解决方案!

如果您使用的是implementation 'cn.pedant.sweetalert:library:1.3'库,只需在您的proguard-rules.pro文件中添加以下行即可。

-keep class cn.pedant.** { *; }

答案 6 :(得分:0)

将此添加到proguard-rules.pro

-keep class cn.pedant.SweetAlert.Rotate3dAnimation {
    public <init>(...);
 }

答案 7 :(得分:0)

我只是通过更改解决了问题

mErrorInAnim = OptAnimationLoader.loadAnimation(getContext(), R.anim.error_frame_in); 

mErrorInAnim =  (AnimationSet)OptAnimationLoader.loadAnimation(getContext(), R.anim.error_x_in); 

在文件 SweetAlertDialog.java 中

快乐编码..