gpt4 book ai didi

android - 使用 Ar 核心时出现定位服务错误

转载 作者:行者123 更新时间:2023-12-03 20:53:51 33 4
gpt4 key购买 nike

我有一个 Ar 对象,它放置在屏幕底部,并且会随着相机的移动而移动,但一段时间后会出现错误提示
E/ARCore-LocationProvider:FLP api客户端构建时出现异常:com.google.android.gms.common.api.GoogleApiClient
java.lang.ClassNotFoundException: com.google.android.gms.common.api.GoogleApiClient

我不知道为什么会这样,因为我没有使用任何基于位置的服务

这是完整的错误:

    E/ARCore-LocationProvider: Exception during FLP api client construction: com.google.android.gms.common.api.GoogleApiClient
java.lang.ClassNotFoundException: com.google.android.gms.common.api.GoogleApiClient
at java.lang.Class.classForName(Native Method)
at java.lang.Class.forName(Class.java:454)
at com.google.ar.core.services.LocationProvider.loadClass(PG:74)
at com.google.ar.core.services.LocationProvider.<init>(PG:11)
at com.google.ar.core.Session.nativeCreateSessionAndWrapperWithFeatures(Native Method)
at com.google.ar.core.Session.<init>(Session.java:14)
at com.google.ar.sceneform.ux.BaseArFragment.createSessionWithFeatures(BaseArFragment.java:419)
at com.google.ar.sceneform.ux.BaseArFragment.createSession(BaseArFragment.java:405)
at com.google.ar.sceneform.ux.BaseArFragment.initializeSession(BaseArFragment.java:379)
at com.google.ar.sceneform.ux.BaseArFragment.onResume(BaseArFragment.java:338)
at androidx.fragment.app.Fragment.performResume(Fragment.java:2498)
at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManager.java:1501)
at androidx.fragment.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1784)
at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManager.java:1852)
at androidx.fragment.app.FragmentManagerImpl.dispatchStateChange(FragmentManager.java:3269)
at androidx.fragment.app.FragmentManagerImpl.dispatchResume(FragmentManager.java:3241)
at androidx.fragment.app.FragmentController.dispatchResume(FragmentController.java:223)
at androidx.fragment.app.FragmentActivity.onResumeFragments(FragmentActivity.java:538)
at androidx.fragment.app.FragmentActivity.onPostResume(FragmentActivity.java:527)
at androidx.appcompat.app.AppCompatActivity.onPostResume(AppCompatActivity.java:172)
at android.app.Activity.performResume(Activity.java:7977)
at android.app.ActivityThread.performResumeActivity(ActivityThread.java:4312)
at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:4354)
at android.app.servertransaction.ResumeActivityItem.execute(ResumeActivityItem.java:52)
at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:176)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:97)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2109)
at android.os.Handler.dispatchMessage(Handler.java:107)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:7682)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:516)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:950)
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.android.gms.common.api.GoogleApiClient" on path: DexPathList[[zip file "/data/app/com.example.arrings-Z2Bc9Z5oOudX5Z9PhFYHZQ==/base.apk"],nativeLibraryDirectories=[/data/app/com.example.arrings-Z2Bc9Z5oOudX5Z9PhFYHZQ==/lib/arm64, /data/app/com.example.arrings-Z2Bc9Z5oOudX5Z9PhFYHZQ==/base.apk!/lib/arm64-v8a, /system/lib64, /system/product/lib64]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:196)
at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
at java.lang.Class.classForName(Native Method) 
at java.lang.Class.forName(Class.java:454) 
at com.google.ar.core.services.LocationProvider.loadClass(PG:74) 
at com.google.ar.core.services.LocationProvider.<init>(PG:11) 
at com.google.ar.core.Session.nativeCreateSessionAndWrapperWithFeatures(Native Method) 
at com.google.ar.core.Session.<init>(Session.java:14) 
at com.google.ar.sceneform.ux.BaseArFragment.createSessionWithFeatures(BaseArFragment.java:419) 
at com.google.ar.sceneform.ux.BaseArFragment.createSession(BaseArFragment.java:405) 
at com.google.ar.sceneform.ux.BaseArFragment.initializeSession(BaseArFragment.java:379) 
at com.google.ar.sceneform.ux.BaseArFragment.onResume(BaseArFragment.java:338) 
at androidx.fragment.app.Fragment.performResume(Fragment.java:2498) 
at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManager.java:1501) 
at androidx.fragment.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1784) 
at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManager.java:1852) 
at androidx.fragment.app.FragmentManagerImpl.dispatchStateChange(FragmentManager.java:3269) 
at androidx.fragment.app.FragmentManagerImpl.dispatchResume(FragmentManager.java:3241) 
at androidx.fragment.app.FragmentController.dispatchResume(FragmentController.java:223) 
at androidx.fragment.app.FragmentActivity.onResumeFragments(FragmentActivity.java:538) 
at androidx.fragment.app.FragmentActivity.onPostResume(FragmentActivity.java:527) 
at androidx.appcompat.app.AppCompatActivity.onPostResume(AppCompatActivity.java:172) 
at android.app.Activity.performResume(Activity.java:7977) 
at android.app.ActivityThread.performResumeActivity(ActivityThread.java:4312) 
at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:4354) 
at android.app.servertransaction.ResumeActivityItem.execute(ResumeActivityItem.java:52) 
at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:176) 
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:97) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2109) 
at android.os.Handler.dispatchMessage(Handler.java:107) 
at android.os.Looper.loop(Looper.java:214) 
at android.app.ActivityThread.main(ActivityThread.java:7682) 
at java.lang.reflect.Method.invoke(Native Method) 
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:516) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:950) 
2020-05-11 12:04:39.708 7568-7568/com.example.arrings E/ARCore-LocationProvider: Can't find FLP class: com.google.android.gms.location.LocationServices
java.lang.ClassNotFoundException: com.google.android.gms.location.LocationServices
at java.lang.Class.classForName(Native Method)
at java.lang.Class.forName(Class.java:454)
at com.google.ar.core.services.LocationProvider.loadClass(PG:74)
at com.google.ar.core.services.LocationProvider.isLocationLibraryLinked(PG:60)
at com.google.ar.core.Session.nativeCreateSessionAndWrapperWithFeatures(Native Method)
at com.google.ar.core.Session.<init>(Session.java:14)
at com.google.ar.sceneform.ux.BaseArFragment.createSessionWithFeatures(BaseArFragment.java:419)
at com.google.ar.sceneform.ux.BaseArFragment.createSession(BaseArFragment.java:405)
at com.google.ar.sceneform.ux.BaseArFragment.initializeSession(BaseArFragment.java:379)
at com.google.ar.sceneform.ux.BaseArFragment.onResume(BaseArFragment.java:338)
at androidx.fragment.app.Fragment.performResume(Fragment.java:2498)
at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManager.java:1501)
at androidx.fragment.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1784)
at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManager.java:1852)
at androidx.fragment.app.FragmentManagerImpl.dispatchStateChange(FragmentManager.java:3269)
at androidx.fragment.app.FragmentManagerImpl.dispatchResume(FragmentManager.java:3241)
at androidx.fragment.app.FragmentController.dispatchResume(FragmentController.java:223)
at androidx.fragment.app.FragmentActivity.onResumeFragments(FragmentActivity.java:538)
at androidx.fragment.app.FragmentActivity.onPostResume(FragmentActivity.java:527)
at androidx.appcompat.app.AppCompatActivity.onPostResume(AppCompatActivity.java:172)
at android.app.Activity.performResume(Activity.java:7977)
at android.app.ActivityThread.performResumeActivity(ActivityThread.java:4312)
at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:4354)
at android.app.servertransaction.ResumeActivityItem.execute(ResumeActivityItem.java:52)
at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:176)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:97)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2109)
at android.os.Handler.dispatchMessage(Handler.java:107)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:7682)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:516)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:950)
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.android.gms.location.LocationServices" on path: DexPathList[[zip file "/data/app/com.example.arrings-Z2Bc9Z5oOudX5Z9PhFYHZQ==/base.apk"],nativeLibraryDirectories=[/data/app/com.example.arrings-Z2Bc9Z5oOudX5Z9PhFYHZQ==/lib/arm64, /data/app/com.example.arrings-Z2Bc9Z5oOudX5Z9PhFYHZQ==/base.apk!/lib/arm64-v8a, /system/lib64, /system/product/lib64]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:196)
at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
at java.lang.Class.classForName(Native Method) 
at java.lang.Class.forName(Class.java:454) 
at com.google.ar.core.services.LocationProvider.loadClass(PG:74) 
at com.google.ar.core.services.LocationProvider.isLocationLibraryLinked(PG:60) 
at com.google.ar.core.Session.nativeCreateSessionAndWrapperWithFeatures(Native Method) 
at com.google.ar.core.Session.<init>(Session.java:14) 
at com.google.ar.sceneform.ux.BaseArFragment.createSessionWithFeatures(BaseArFragment.java:419) 
at com.google.ar.sceneform.ux.BaseArFragment.createSession(BaseArFragment.java:405) 
at com.google.ar.sceneform.ux.BaseArFragment.initializeSession(BaseArFragment.java:379) 
at com.google.ar.sceneform.ux.BaseArFragment.onResume(BaseArFragment.java:338) 
at androidx.fragment.app.Fragment.performResume(Fragment.java:2498) 
at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManager.java:1501) 
at androidx.fragment.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1784) 
at androidx.fragment.app.FragmentManagerImpl.moveToState(FragmentManager.java:1852) 
at androidx.fragment.app.FragmentManagerImpl.dispatchStateChange(FragmentManager.java:3269) 
at androidx.fragment.app.FragmentManagerImpl.dispatchResume(FragmentManager.java:3241) 
at androidx.fragment.app.FragmentController.dispatchResume(FragmentController.java:223) 
at androidx.fragment.app.FragmentActivity.onResumeFragments(FragmentActivity.java:538) 
at androidx.fragment.app.FragmentActivity.onPostResume(FragmentActivity.java:527) 
at androidx.appcompat.app.AppCompatActivity.onPostResume(AppCompatActivity.java:172) 
at android.app.Activity.performResume(Activity.java:7977) 
at android.app.ActivityThread.performResumeActivity(ActivityThread.java:4312) 
at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:4354) 
at android.app.servertransaction.ResumeActivityItem.execute(ResumeActivityItem.java:52) 
at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:176) 
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:97) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2109) 
at android.os.Handler.dispatchMessage(Handler.java:107) 
at android.os.Looper.loop(Looper.java:214) 
at android.app.ActivityThread.main(ActivityThread.java:7682) 
at java.lang.reflect.Method.invoke(Native Method) 
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:516) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:950) 
2020

这件事也发生在崩溃之前
    camera_image_stream.cc:230 Camera Image Stream failed to dequeue Image from ImageReader. status=UNAVAILABLE: AImageReader_acquireLatestImage [type.googleapis.com/util.ErrorSpacePayload='ImageReaderStatusErrorSpaceClass::AMEDIA_IMGREADER_NO_BUFFER_AVAILABLE'] acquired_image_count=9
2020-05-11 12:05:12.837 7568-7678/com.example.arrings E/native: camera_image_stream.cc:230 Camera Image Stream failed to dequeue Image from ImageReader. status=UNAVAILABLE: AImageReader_acquireLatestImage [type.googleapis.com/util.ErrorSpacePayload='ImageReaderStatusErrorSpaceClass::AMEDIA_IMGREADER_NO_BUFFER_AVAILABLE'] acquired_image_count=9
2020-05-11 12:05:12.837 7568-7678/com.example.arrings E/native: camera_image_stream.cc:230 Camera Image Stream failed to dequeue Image from ImageReader. status=UNAVAILABLE: AImageReader_acquireLatestImage [type.googleapis.com/util.ErrorSpacePayload='ImageReaderStatusErrorSpaceClass::AMEDIA_IMGREADER_NO_BUFFER_AVAILABLE'] acquired_image_count=9

这是我正在使用的代码:\
private lateinit var arFragment: ArFragment
private var renderable: ModelRenderable? = null
private val mCameraRelativePose = Pose.makeTranslation(0.0f, -0.39f, -0.55f)
private var oldAnchor: Anchor? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
arFragment = ar_fragment as ArFragment
arFragment.planeDiscoveryController.hide()
arFragment.arSceneView.planeRenderer.isVisible = false
arFragment.planeDiscoveryController.setInstructionView(null)
arFragment.arSceneView.scene.addOnUpdateListener { frameTime ->
arFragment.onUpdate(frameTime)
addNodeToScene()
}
//arFragment.setOnTapArPlaneListener { _, _, _ -> }
placeObject()
}

/**
* @param fragment our fragment
* @param anchor ARCore anchor from the hit test
* @param model our 3D model of choice
*
* Uses the ARCore anchor from the hitTest result and builds the Sceneform nodes.
* It starts the asynchronous loading of the 3D model using the ModelRenderable builder.
*/
private fun placeObject() {
ModelRenderable.builder()
.setSource(arFragment.context, R.raw.rings)
.build()
.thenAccept {
renderable?.isShadowCaster = false
renderable?.isShadowReceiver = false
renderable = it
}
.exceptionally {
Toast.makeText(this@MainActivity, "Error", Toast.LENGTH_SHORT).show()
return@exceptionally null
}
}

/**
* @param fragment our fragment
* @param anchor ARCore anchor
* @param renderable our model created as a Sceneform Renderable
*
* This method builds two nodes and attaches them to our scene
* The Anchor nodes is positioned based on the pose of an ARCore Anchor. They stay positioned in the sample place relative to the real world.
* The Transformable node is our Model
* Once the nodes are connected we select the TransformableNode so it is available for interactions
*/
private fun addNodeToScene() {
val frame = arFragment.arSceneView.arFrame ?: return
val pose =
frame.camera?.displayOrientedPose?.compose(mCameraRelativePose)?.extractTranslation()
if (frame.camera?.trackingState == TrackingState.TRACKING) {
val anchor = arFragment.arSceneView.session?.createAnchor(pose)
anchor?.pose?.toMatrix(FloatArray(16), 0)

if (oldAnchor != null) {
oldAnchor?.detach()
}
oldAnchor = anchor
val anchorNode = AnchorNode(anchor)
anchorNode.isSmoothed = true
anchorNode.setParent(arFragment.arSceneView.scene)
// TransformableNode means the user to move, scale and rotate the model
val transformableNode = TransformableNode(arFragment.transformationSystem)
transformableNode.renderable = renderable // have to add position and angel here naaa
transformableNode.setParent(anchorNode)
transformableNode.select()
}
}

最佳答案

我对 LocationProvider 有类似的问题,我没有在我的应用程序中使用位置。意外地将图像添加到增强图像数据库中时,我使用的名称为空。

AugmentedImageDatabase augmentedImageDatabase = new AugmentedImageDatabase(session);
augmentedImageDatabase.addImage(name /*was null*/, bitmap, size);

关于android - 使用 Ar 核心时出现定位服务错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61723670/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com