-
Notifications
You must be signed in to change notification settings - Fork 1.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ARCore 1.4.0 critical issue on sync / compilation #532
Comments
That's pretty odd. We'll look into it. From the SO post: you got this error when building for the x86 emulator, right? I don't think architecture would affect clearly Java-related build-time issues, but just in case it matters I want to document that. |
On the upside, congrats on being the first person to ever ask about this diagnostic message! |
I built for Pixel 2, x86 arch. Also I did built for Samsung Galaxy S8. |
More updates to the issue. Still might be strange but worth to try. I had my AR running if ArCore apk was already installed. After I uninstall it, and added this code in my private void verifyArSupported() {
ArCoreApk.Availability availability = ArCoreApk.getInstance().checkAvailability(App.getContext());
if (availability.isTransient()) {
new Handler().postDelayed(() -> verifyArSupported(), 200);
}
if (availability.isSupported()) {
btnAR.setVisibility(View.VISIBLE);
btnAR.setEnabled(true);
} else {
btnAR.setVisibility(View.GONE);
btnAR.setEnabled(false);
}
} I started receiving next error: Process: com.severenity, PID: 5548
java.lang.NoClassDefFoundError: Failed resolution of: Lcom/google/ar/core/a;
at com.google.ar.core.ArCoreApk$Availability.<clinit>(Unknown Source)
at com.google.ar.core.h.checkAvailability(Unknown Source)
at com.severenity.view.quests.QuestPartFragment.verifyArSupported(QuestPartFragment.java:247)
at com.severenity.view.quests.QuestPartFragment.onCreateView(QuestPartFragment.java:206)
at android.support.v4.app.Fragment.performCreateView(Fragment.java:2346)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1428)
at android.support.v4.app.FragmentManagerImpl.moveFragmentToExpectedState(FragmentManager.java:1759)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1827)
at android.support.v4.app.BackStackRecord.executeOps(BackStackRecord.java:797)
at android.support.v4.app.FragmentManagerImpl.executeOps(FragmentManager.java:2596)
at android.support.v4.app.FragmentManagerImpl.executeOpsTogether(FragmentManager.java:2383)
at android.support.v4.app.FragmentManagerImpl.removeRedundantOperationsAndExecute(FragmentManager.java:2338)
at android.support.v4.app.FragmentManagerImpl.execSingleAction(FragmentManager.java:2215)
at android.support.v4.app.BackStackRecord.commitNowAllowingStateLoss(BackStackRecord.java:649)
at android.support.v4.app.FragmentStatePagerAdapter.finishUpdate(FragmentStatePagerAdapter.java:167)
at android.support.v4.view.ViewPager.populate(ViewPager.java:1238)
at android.support.v4.view.ViewPager.populate(ViewPager.java:1086)
at android.support.v4.view.ViewPager.onMeasure(ViewPager.java:1616)
at android.view.View.measure(View.java:21121)
at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:715)
at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:461)
at android.view.View.measure(View.java:21121)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6462)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
at android.view.View.measure(View.java:21121)
at android.widget.RelativeLayout.measureChildHorizontal(RelativeLayout.java:715)
at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:461)
at android.view.View.measure(View.java:21121)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6462)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
at android.support.v7.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:141)
at android.view.View.measure(View.java:21121)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6462)
at android.support.v7.widget.ActionBarOverlayLayout.onMeasure(ActionBarOverlayLayout.java:400)
at android.view.View.measure(View.java:21121)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6462)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
at android.view.View.measure(View.java:21121)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6462)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
at android.view.View.measure(View.java:21121)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:6462)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:185)
at com.android.internal.policy.DecorView.onMeasure(DecorView.java:897)
at android.view.View.measure(View.java:21121)
at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2625)
at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1677)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1928)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1550)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:7189)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:959)
at android.view.Choreographer.doCallbacks(Choreographer.java:734)
at android.view.Choreographer.doFrame(Choreographer.java:670)
08-17 15:21:10.399 5548-5548/com.severenity E/AndroidRuntime: at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:945)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6776)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1520)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1410)
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.google.ar.core.a" on path: DexPathList[[zip file "/data/app/com.severenity-1/base.apk"],nativeLibraryDirectories=[/data/app/com.severenity-1/lib/arm64, /data/app/com.severenity-1/base.apk!/lib/arm64-v8a, /system/lib64, /vendor/lib64]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
at java.lang.ClassLoader.loadClass(ClassLoader.java:380)
at java.lang.ClassLoader.loadClass(ClassLoader.java:312) I also tried other methods (onActivityCreated(), onResume()) in fragment, but they did not work. Hope this helps somehow. |
This is starting to sound like your build system might be part of the problem. Try turning off proguard and any other postprocessing and see if that changes anything. |
Funny thing. I tried to disable proguard and it did not help. The thing helped is answered at StackOverflow here Firebase Performance Plugin was causing a lot of troubles and after adding to app gradle file this: if (!project.gradle.startParameter.taskNames.any { taskName ->
taskName.toLowerCase().contains('assemble') && taskName.toLowerCase().contains('debug') }) {
apply plugin: 'com.google.firebase.firebase-perf'
} and to main gradle file this: if (!project.gradle.startParameter.taskNames.any { taskName ->
taskName.toLowerCase().contains('assemble') && taskName.toLowerCase().contains('debug') }) {
classpath("com.google.firebase:firebase-plugins:1.1.5") {
exclude group: 'com.google.guava', module: 'guava-jdk5'
}
} Issue disappeared. But still it would be great to have more descriptive error messages in such cases. Update: looks like Firebase Performance Plugin was causing the issue. It still failed for release build type, so after complete removal - things did work. |
@OlegNovosad Did you manage to solve this one? I am getting a similar error caused by the firebase-performance as well |
This is likely to to collisions between proguarded class names. Per #566 we've tweaked our SDK proguard config to keep all package names so hopefully this will be less of an issue starting with the 1.6 SDK. |
Stackoverflow thread is here
Basically this occurred when I updated my project ARCore and Sceneform to 1.4.0 version. During build I received next issue:
Class content provided for type descriptor com.google.ar.core.h actually defines class com.google.ar.core.H Message{kind=ERROR, text=Class content provided for type descriptor com.google.ar.core.h actually defines class com.google.ar.core.H, sources=[Unknown source file], tool name=Optional.of(D8)}
Was not able to Google it so the only thing I tried after all recommendations on similar issues - downgrade version and it started to work.
The text was updated successfully, but these errors were encountered: