我最近從XDA開發人員論壇下載了Gear Fit-SDK,並嘗試了pdf文件中的示例。Gear Fit SDK IllegalStateException
該應用程序正在啓動,我可以點擊ListViewItem在我的Gear Fit上啓動ExampleDialog。但後來我得到以下錯誤:
04-01 15:00:52.748 29498-29498/de.chrosey.gearfitone E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: de.chrosey.gearfitone, PID: 29498
java.lang.IllegalStateException: Scup is not initialized
at com.samsung.android.sdk.cup.ScupDialog.<init>(Unknown Source)
at de.chrosey.gearfitone.cup.HelloCupDialog.<init>(HelloCupDialog.java:15)
at de.chrosey.gearfitone.MainActivity$1.onItemClick(MainActivity.java:39)
...
這裏是我的文件:
MainActivity.java
public class MainActivity extends ActionBarActivity {
String[] NAMES = {"Hello Cup"};
private HelloCupDialog mHelloCupDialog = null;
private static final int Hello_Cup = 0;
private ListView mListView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, NAMES);
mListView = (ListView) findViewById(R.id.demo_list);
mListView.setAdapter(adapter);
mListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
if (position == Hello_Cup) {
if (mHelloCupDialog == null) {
mHelloCupDialog = new HelloCupDialog(
getApplicationContext());
} else {
mHelloCupDialog.finish();
mHelloCupDialog = null;
}
}
}
});
}[...]}
HelloCupDialog.java
public class HelloCupDialog extends ScupDialog {
public HelloCupDialog(Context context) {
super(context); //<-- this is where the error appears
}
@Override
protected void onCreate(){
super.onCreate();
setBackEnabled(true);
ScupLabel helloLabel = new ScupLabel(this);
[...]
setBackPressedListener(new BackPressedListener() {
@Override
public void onBackPressed(ScupDialog scupDialog) {
finish();
}
});
}}
AndroidManifest.xml中
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="de.chrosey.gearfitone">
<uses-permission android:name="com.samsung.android.providers.context.permission.WRITE_USE_APP_FEATURE_SURVEY" />
<uses-permission android:name="com.samsung.android.sdk.permission.SAMSUNG_CUP_SERVICE"/>
<application
[...]
<activity
[...]
<intent-filter>
<action android:name="com.samsung.android.sdk.cup"/>
</intent-filter>
</activity>
<meta-data
android:name="SAMSUNG_CUP_APP"
android:value="app_name;ic_launcher;true" />
</application>
我在Samsung S4,Lollipop StockRom上測試。 IDE是Android Studio 1.1。
有沒有人知道爲什麼它不能像PlayStore的其他啓用杯子的應用那樣工作?
同樣的問題在這裏,你找到一個解決方案? – winne2 2015-12-10 10:22:26
不是,對不起 – chrosey 2015-12-10 13:19:46
嗯,看起來好像這個問題可能與這個問題有關:http://markliebrand.blogspot.de/p/fixing-gear-fit-sdk-for-android-50.html I嘗試了那裏描述的補丁,但它仍然在Nexus 5 /棉花糖上崩潰,現在又有一個例外。 – winne2 2015-12-10 15:10:13