我做了什么:
步骤1)
在graddle中添加了以下依赖项:
compile 'com.airbnb.android:lottie:2.0.0-beta4'
第2步)
Airbnb不会告诉我们放置动画JSON文件的位置。相反,我在他们的示例应用程序中看到它放在 app / src / main / assets 上。所以我创建了该文件夹并在那里插入了一些JSON动画。
第3步)
在 activity_main.xml :
上添加了以下内容<com.airbnb.lottie.LottieAnimationView
android:id="@+id/animation_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:lottie_fileName="EmptyState.json"
app:lottie_loop="true"
app:lottie_autoPlay="true"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
运行应用程序后,我收到以下错误:
04-29 12:55:37.253 21877-21877/com.example.ross.testitout E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.ross.testitout, PID: 21877
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.ross.testitout/com.example.ross.testitout.MainActivity}: android.view.InflateException: Binary XML file line #9: Binary XML file line #9: Error inflating class com.airbnb.lottie.LottieAnimationView
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2416)
想知道我做错了什么。还有一个缺乏完整的教程,这是一种耻辱,像我这样的初学者需要花费的时间超过必要的时间来解决问题。
感谢。
答案 0 :(得分:8)
要回答我自己的问题,问题是缺少官方资产文件夹。您可以手动创建它,但它无法正常工作。
要使其发挥作用,请执行以下操作:
在Android Studio中打开您的项目。
选择位于左侧的项目文件夹中的任何内容。
按 alt + insert ,会弹出一个菜单。
选择子菜单“文件夹”,然后单击“资产文件夹”。
这将创建存储动画所需的资源文件夹。
从那里开始,您可以插入JSON动画并将其链接到那里。
您可以从各个地方(如lottie文件或官方示例应用)获取动画,或使用Adobe After Effects自行制作动画。
答案 1 :(得分:1)
如果没有Assets文件夹,您也可以使用res / raw文件夹执行此操作:
将const questions = {
iq_test: {
questions: [
{
question: 'Find the difference',
choices: ['a1', 'a2', 'a1', 'a3'],
correct: 0
},
{
question: 'What is the next sequence',
choices: ['2', '5', '56', '64'],
correct: 3
},
{ question: 'What should be the next letter',
choices: ['c', 'z', 'e', 'f'],
correct: 3
}]
},
memory_test: {
}
}
let retQuestions = questions.iq_test.questions.map(item => item);
console.log(retQuestions);
放在路径: app / src / main / res / raw 目录中。您可以从here
用于check_mark_done.json
LottieAnimationView
在活动文件中:
<com.airbnb.lottie.LottieAnimationView
android:id="@+id/lottieAnimationView"
android:layout_width="144dp"
android:layout_height="144dp"
android:layout_margin="16dp"
app:lottie_autoPlay="true"
app:lottie_loop="true"
app:lottie_rawRes="@raw/check_mark_done" />
startCheckAnimation()的定义:
LottieAnimationView animationView = findViewById(R.id.lottieAnimationView);
startCheckAnimation();
答案 2 :(得分:0)
添加以前的答案。您需要添加官方Assets文件夹。我在Mac上找到的最简单的方法(也可能适用于Windows)是右键单击Java - &gt;新 - &gt;文件夹 - &gt;资产文件夹。
希望这有助于某人,我花了很多时间寻找错误。
答案 3 :(得分:0)
我遇到了上述答案中提到的所有问题,我都做了。我遵循简单的步骤。
android:src="@drawable/image"
,并检查here中的最新版本就是这样,希望对您有所帮助。