【发布时间】:2020-11-19 23:41:26
【问题描述】:
我尝试在 Android Studio 中遵循此 ARCore 指南:https://developers.google.com/ar/develop/java/enable-arcore#manifest
我按照这些步骤操作,但是当我尝试检查设备是否支持 ARCore 时出现错误:
E/ARCore-ArCoreApk: Error while checking app details and ARCore status
com.google.ar.core.exceptions.FatalException: Application manifest must contain meta-data com.google.ar.core.min_apk_version
at com.google.ar.core.k.e(ArCoreApkImpl.java:41)
at com.google.ar.core.k.b(ArCoreApkImpl.java:52)
at com.google.ar.core.k.checkAvailability(ArCoreApkImpl.java:5)
我不明白为什么我应该在清单中指定最小 apk 版本。 我在 build.gradle(:app) 中有它:
minSdkVersion 21
在我拥有的依赖项中:
implementation 'com.google.ar:core:1.18.0'
在我拥有的存储库中:
repositories {
google()
在我的清单中:
<?xml version="1.0" encoding="utf-8"?>
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="XXXXX">
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.CAMERA" />
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="Test"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
tools:node="replace"
android:theme="@style/AppTheme">
<meta-data android:name="com.google.ar.core" android:value="optional" />
<provider
android:name="android.support.v4.content.FileProvider"
android:authorities="${applicationId}.provider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/provider_paths" />
</provider>
<activity android:name=".MainActivity" android:screenOrientation="sensorLandscape"
tools:ignore="LockedOrientationActivity" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
在课堂上:
public void Check_AR()
{
ArCoreApk.Availability availability = ArCoreApk.getInstance().checkAvailability(getApplicationContext());
if (availability.isTransient())
{
// Re-query at 5Hz while compatibility is checked in the background.
new Handler().postDelayed(new Runnable()
{
@Override
public void run()
{
Check_AR();
}
}, 200);
}
if (availability.isSupported())
{
Flag_AR = true;
}
else
{ // Unsupported or unknown.
Flag_AR = false;
}
Log.d("TAG", "Check_AR: " + Flag_AR);
}
谁能帮帮我? 提前谢谢你!
编辑: 当我在 android studio 中分析 APK 时,我可以看到 uses-sdk 在这里并匹配 graddle。 但我有一个错误 xmlns:android="http://schemas.android.com/apk/res/android" --> URI 未注册(设置 | 语言和框架 | 模式和 DTD) 这有关系吗?
【问题讨论】:
标签: android android-manifest arcore