gpt4 book ai didi

google-gdk - 谷歌眼镜 GDK 向后兼容性?

转载 作者:行者123 更新时间:2023-12-01 14:29:02 29 4
gpt4 key购买 nike

我刚刚在我的 glass XE 20.1 上试用了更新后的 gdk,我的测试应用程序崩溃了,因为新的 api 不可用。

CardBuilder card = new CardBuilder(this, CardBuilder.Layout.TEXT);

(旧的 Card 构造函数已弃用。构建器模式正在替换它。)

日志:

09-09 00:27:16.239    1992-1992/com.prat.testgdk E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: com.prat.testgdk, PID: 1992
java.lang.NoClassDefFoundError: com.google.android.glass.widget.CardBuilder
at com.prat.testgdk.MainActivity.buildView(MainActivity.java:95)
at com.prat.testgdk.MainActivity.onCreate(MainActivity.java:40)

在其他 Android 设备上,我可以检查 android.os.Build.VERSION.SDK_INT 或设置 minSdkVersion,但在 Glass 上,当新的 sdk 发布时,SDK_INT 不会更新。

处理这个问题的正确方法是什么?有没有比使用反射更好的方法来测试特定类的可用性?

我错过了什么吗?

编辑:

根据 API 演示,我们似乎不应该关心。让它在旧的 XE 上崩溃。希望所有眼镜都能尽快更新。 参见 https://github.com/googleglass/gdk-apidemo-sample/commit/e644c7325bb74a02b0f383bf9f19e9f851313dc2

最佳答案

现在,我会使用反射...可能:

private View buildView() {
try {
String cardBuilderName = "com.google.android.glass.widget.CardBuilder";
Class clazz = Class.forName(cardBuilderName);
CardBuilder cardBuilder = new CardBuilder(this, CardBuilder.Layout.TEXT);
cardBuilder.setText(R.string.hello_world);
return cardBuilder.getView();
} catch (Exception e) {
//ClassNotFoundException?
Log.v(TAG, e.toString());
Card card = new Card(this);
card.setText(R.string.hello_world);
return card.getView();
}
}

注意:我没有在旧的 XE 上测试过,因为我刷过 XE 21。

但这很丑陋。希望我们有更好的方法来处理这个问题。

关于google-gdk - 谷歌眼镜 GDK 向后兼容性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25736745/

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