Недавно я загрузил Gear Fit-SDK с форума XDA-Developers-forum и попробовал пример в pdf-файле.Gear Fit SDK IllegalStateException
Приложение запускается, и я могу нажать на ListViewItem, чтобы запустить ExampleDialog на моем Gear Fit. Но тогда я получаю следующее сообщение об ошибке:
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
не очень, извините – chrosey
Хмм, похоже, эта проблема может быть связана с этим: http://markliebrand.blogspot.de/p/fixing-gear-fit-sdk-for-android-50.html I попробовал патч, описанный там, но он все еще падает на Nexus 5/Marshmallow, теперь с другим исключением. – winne2