- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试将 Layar SDK 集成到 Unity。但我有一些问题。
这是AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.layar.player"
android:versionCode="1"
android:versionName="8.5.2" >
<uses-sdk
android:minSdkVersion="15"
android:targetSdkVersion="23" />
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_UPDATES" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-feature android:name="android.hardware.camera" />
<application>
<activity
android:name="com.layar.sdk.LayarSDKActivity"
android:launchMode="singleTask"
android:screenOrientation="nosensor"
android:theme="@android:style/Theme.Light.NoTitleBar" />
<activity
android:name="com.layar.player.geo.FilterSettingsActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
android:theme="@style/FilterTheme" />
<activity
android:name="com.layar.LayerDetailsActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
android:theme="@style/LayarTitleTheme" />
<activity
android:name="com.layar.WebActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
android:theme="@style/LayarTitleTheme" />
<activity
android:name="com.layar.ShareSocialActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
android:theme="@style/Layar.Theme.Default" />
<activity
android:name="com.layar.VideoActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
android:theme="@style/FullScreenTheme" />
<activity
android:name="com.layar.AudioActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
android:theme="@style/SmartDialogTheme" />
<activity
android:name="com.layar.ScreenshotActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
android:screenOrientation="nosensor"
android:theme="@android:style/Theme.Light.NoTitleBar" />
<activity
android:name="com.layar.ShareOnFacebookActivity"
android:theme="@android:style/Theme.Light.NoTitleBar"
android:windowSoftInputMode="stateAlwaysVisible|adjustResize" />
<receiver
android:name="com.layar.localytics.CloseSesionBroadcastReciever"
android:exported="false" >
<intent-filter>
<action android:name="com.layar.close_session" />
</intent-filter>
</receiver>
</application>
这是我的 c#
using UnityEngine;
public class IntegrationLayar : MonoBehaviour {
private AndroidJavaObject LayarSDK = null;
private AndroidJavaObject activity = null;
private AndroidJavaObject context = null;
private string oauthKey = "code";
private string oauthSecret = "code2";
void Start ()
{
if (LayarSDK == null)
{
using (AndroidJavaClass unityPlayer = new AndroidJavaClass("com.unity3d.player.UnityPlayer"))
{
activity = unityPlayer.GetStatic<AndroidJavaObject>("currentActivity");
context = activity.Call<AndroidJavaObject>("getApplicationContext");
//activity.Call("runOnUiThread", new AndroidJavaRunnable(runOnUiThread));
Debug.Log("unity3D JAVA - Working");
}
using (AndroidJavaClass pluginClass = new AndroidJavaClass("com.layar.player"))
{
if (pluginClass != null)
{
Debug.Log("Layar Java - Working");
pluginClass.CallStatic("initialize", context, oauthKey, oauthSecret);
pluginClass.CallStatic("startLayarActivity", context);
}
}
}
}
}
错误:
AndroidJavaException: java.lang.ClassNotFoundException: com.layar.player
据我了解,在Java中没有找到这样命名的类。那么问题是什么?我调用了错误的 Activity ?
这里是 Layar API 的链接 link
正如我在 Layar API 中看到的,该类是“LayarVisionSDK”。
AndroidJavaClass pluginClass = new AndroidJavaClass("com.layar.player.LayarVisionSDK")
那么也许这应该有效?
我当然做错了,但如果你们中的任何人有一个可以遵循的方向,我会很高兴学习:)
更新 1:
这是来自 APK
Class LayarVisionSDK
java.lang.Object
com.layar.sdk.LayarVisionSDK
所以不要使用
AndroidJavaClass pluginClass = new AndroidJavaClass("com.layar.player.LayarVisionSDK")
我正在使用
AndroidJavaObject LayarVisionSDK = new AndroidJavaObject("com.layar.sdk.LayarVisionSDK");
但是还是没有成功。我问自己问题是否并不在表面上。
更新2:
好的!我找到了为什么会出现这个错误,API 文档没有更新,所以我检查了 java 包并找到了“initialize”方法在哪里。
这是新的 C# 代码。
using (AndroidJavaClass pluginClass = new AndroidJavaClass("com.layar.sdk.LayarSDK"))
{
if (pluginClass != null)
{
Debug.Log("SDK LAYAR FOUND !!! ");
pluginClass.CallStatic("initialize", context, oauthKey, oauthSecret);
Debug.Log("INITIALIZED");
//pluginClass.Call("startLayarActivity", context);
}
}
但是我遇到了一个新错误:
AndroidJavaException: java.lang.NoClassDefFoundError: Failed resolution of: Landroid/support/v4/content/ContextCompat;
我缺少 Android 库吗?
最佳答案
确保 Plugins/Android/libs 文件夹下有 android-support-v4.jar。
您可以从 here 下载该文件.
关于java - Unity C# 和 Layar SDK Java - AndroidJavaException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41262585/
我已经在iphone项目中集成了layar框架,但现在我想用一些layars来测试应用程序。但是应用程序需要图层名称、消费者 key 和 key 。是否有任何来源可以让我免费获得 layars 进行测
我是 Layar Technology. 的新手 最近我创建了一个 Layar 帐户并下载了 Layar SDK 并将其集成到我的 Android 应用程序中。直到这一切都很好。但是为了测试这个应用程
这是我的情况: 我创建了一个层来查找 Vision-POI,并将 iPhone Layar Player SDK 集成到我的 iPhone 应用程序中。 当我找到一个 POI 时,我会在 POI 框上
我正在尝试将 Layar SDK 集成到 Unity。但我有一些问题。 这是AndroidManifest.xml
在我将 Expo SDK 升级到 35 之前一切正常,但我现在遇到了这个问题。 layar-bahtera-regular 是我的自定义字体,我已经使用了 Font.loadAsync。有什么问题?
关闭。这个问题是opinion-based .它目前不接受答案。 想改进这个问题?更新问题,以便 editing this post 可以用事实和引用来回答它. 7年前关闭。 Improve this
我是一名优秀的程序员,十分优秀!