今天我想要检查Lottie库在iOS和Android上的表现。我在After Effect中制作了一个简单的指示器动画并将其导出为.json文件,但它只能在iOS上正常运行。当我在Android上测试同一文件时,出现了以下错误:
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.test.lottietest/com.test.lottietest.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void com.airbnb.lottie.LottieAnimationView.setAnimation(java.lang.String)' on a null object reference
这里是我的活动XML
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.mtids.lottietest.MainActivity">
<view
class="com.airbnb.lottie.LottieAnimationView"
id="@+id/animationView"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:layout_marginStart="133dp"
android:layout_marginTop="20dp"
android:onClick="animate"
android:text="animate" />
</RelativeLayout>
活动代码
public class MainActivity extends AppCompatActivity {
LottieAnimationView anim;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
anim = (LottieAnimationView) findViewById(R.id.animationView);
anim.setAnimation("indicator.json");
}
public void animate(View view) {
anim.loop(true);
anim.playAnimation();
}
}
View
,而不是view
。 - Tim<com.airbnb.lottie.LottieAnimationView />
而不是<view class="com.airbnb.lottie.LottieAnimationView>
。同时尝试导航到LottieAnimationView
。 - azizbekian