我正在开发Google Glass应用程序。 我已经安装了示例Compass应用程序。
我正在通过adb在Google Glass模拟器上安装我的apk文件。
但它在运行时给我以下错误:
java.lang.NoClassDefFoundError: com.google.android.glass.timeline.LiveCard
我已经安装了最新的Glass Development Kit。
我刚刚修改了我的Manifest文件,因为我不想通过语音启动来运行apk。
我的清单文件如下:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.google.android.glass.sample.compass"
android:versionCode="5"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="19"
android:targetSdkVersion="19" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<application
android:allowBackup="true"
android:label="@string/app_name"
android:icon="@drawable/ic_compass" >
<activity
android:name="com.google.android.glass.sample.compass.CompassMenuActivity"
android:theme="@style/MenuTheme" />
<service
android:name=".CompassService"
android:label="@string/app_name"
android:icon="@drawable/ic_compass">
<intent-filter>
<action android:name="com.google.android.glass.sample.compass.CompassService" />
</intent-filter>
</service>
</application>
</manifest>
但是在将Live Card创建到服务文件时会抛出错误。
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
if (mLiveCard == null) {
***mLiveCard = new LiveCard(CompassService.this, LIVE_CARD_TAG);***
mRenderer = new CompassRenderer(CompassService.this, mOrientationManager, mLandmarks);
mLiveCard.setDirectRenderingEnabled(true).getSurfaceHolder().addCallback(mRenderer);
// Display the options menu when the live card is tapped.
Intent menuIntent = new Intent(this, CompassMenuActivity.class);
menuIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
mLiveCard.setAction(PendingIntent.getActivity(this, 0, menuIntent, 0));
mLiveCard.attach(this);
mLiveCard.publish(PublishMode.REVEAL);
} else {
Log.i("onStartCommand Else","onStartCommand Else");
mLiveCard.navigate();
}
return START_STICKY;
}
我只是坚持下去。 请帮我。 在此先感谢... :)
答案 0 :(得分:0)
2014年4月15日的XE16版本对GDK进行了重大更改,这意味着旧的Glassware并不总是有效。你可以在这里阅读详细信息:
https://developers.google.com/glass/release-notes
此问题的相关说明是:
The TimelineManager class and support for static cards from the GDK have been removed.
因此,需要更新此代码库以使用XE16。
我最终可以提出拉取请求,但在此期间你可以看到一个类似的Pull Request我修复了一个项目,它是Compass应用程序的一个分支:
https://github.com/mimming/kitty-compass/pull/1
通过遵循我所做的更改,您应该能够了解如何修复Compass应用以使其与XE16兼容。