プログラミング、Linux、Androidについて、検索しても出てこなかったことについて、自分用メモをつける。
- 2024.11≪
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
SoftBank 003Zをubuntu10.10でデバッグしてみる。
参考:http://developer.android.com/guide/developing/device.html
1. 003Zを USBケーブルでUbuntuに接続。
2. Ubuntuの端末エミュレータを起動する。
3. スーパーユーザにてルールファイル(?)を作成
$ sudo vi /etc/udev/rules.d/51-android.rules
4. ZTEのUSBベンダIDの" 19D2"を設定。
SUBSYSTEM=="usb", SYSFS{idVendor}=="19D2", MODE="0666"
5. ファイルの属性変更
$ sudo chmod a+r /etc/udev/rules.d/51-android.rules
※このままだと003Zを認識してくれないので、続けて以下の手順を実施する。
6. adbサーバの停止
$ sudo /{SDKインストール先}/adb kill-server
7. adbサーバの起動
$ sudo /{SDKインストール先}/adb start-server
8. 003Zを認識する。
$ adb logcat
参考:http://developer.android.com/guide/developing/device.html
1. 003Zを USBケーブルでUbuntuに接続。
2. Ubuntuの端末エミュレータを起動する。
3. スーパーユーザにてルールファイル(?)を作成
$ sudo vi /etc/udev/rules.d/51-android.rules
4. ZTEのUSBベンダIDの" 19D2"を設定。
SUBSYSTEM=="usb", SYSFS{idVendor}=="19D2", MODE="0666"
5. ファイルの属性変更
$ sudo chmod a+r /etc/udev/rules.d/51-android.rules
※このままだと003Zを認識してくれないので、続けて以下の手順を実施する。
6. adbサーバの停止
$ sudo /{SDKインストール先}/adb kill-server
7. adbサーバの起動
$ sudo /{SDKインストール先}/adb start-server
8. 003Zを認識する。
$ adb logcat
androidアプリを作成し、いざ署名すると、「
jarsigner: jar に署名できません」とエラーになることが多々(?)ある。
この状態で、zipalignを実行するとマーケットにアップデートを拒否されるので、これを解消しなければならない。
解決方法:
1.リコンパイル
2.jarsignerでもう一度署名する。
3.解消しない場合、1.を実行する。
※マニフェスト変更とか、プロジェクトクリーンアップとか、eclipse再起動とかして、しつこくコンパイルしてたら、いつか受け付けてくれる。
1. デバッグエミュレータ、または、実機マシンからアプリをアンインストールする。
$ adb uninstall [PKG名]
2. jarsignerでもう一度署名する。
※それでも治らない人はこちらを参照してください。
この状態で、zipalignを実行するとマーケットにアップデートを拒否されるので、これを解消しなければならない。
jarsigner: jar に署名できません: java.util.zip.ZipException: invalid entry compressed size (expected 426 but got 428 bytes)
2.jarsignerでもう一度署名する。
3.解消しない場合、1.を実行する。
※マニフェスト変更とか、プロジェクトクリーンアップとか、eclipse再起動とかして、しつこくコンパイルしてたら、いつか受け付けてくれる。
1. デバッグエミュレータ、または、実機マシンからアプリをアンインストールする。
$ adb uninstall [PKG名]
2. jarsignerでもう一度署名する。
※それでも治らない人はこちらを参照してください。
アプリ起動中に激しく画面を傾けると異常終了した。
ログを見るとonDestroyで異常終了していたことが判明。
java.lang.RuntimeException: Unable to destroy activity { アクテビティ }
Thread起動中だったので、onDstroyでスレッドを強制停止するように修正したら、 「Unable to destroy activity」が治まった。 onDstroyでは、スレッド、サービスはすべて停止させないといけないのか・・・。
private ExecutorService exService = Executors.newFixedThreadPool(1);
ログを見るとonDestroyで異常終了していたことが判明。
java.lang.RuntimeException: Unable to destroy activity { アクテビティ }
Thread起動中だったので、onDstroyでスレッドを強制停止するように修正したら、 「Unable to destroy activity」が治まった。 onDstroyでは、スレッド、サービスはすべて停止させないといけないのか・・・。
private ExecutorService exService = Executors.newFixedThreadPool(1);
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Runnable runnable = new Runnable(){....};
exService.execute( runnable );
}
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Runnable runnable = new Runnable(){....};
exService.execute( runnable );
}
@Override
protected void onDestroy() {
super.onDestroy();
exService.shutdownNow();
}
クラッシュエラー通知でNullPointerExceptionが届いたが、
実装していないとこで発生している?のだろうか。
java.lang.NullPointerException
at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:355)
at android.widget.ArrayAdapter.getView(ArrayAdapter.java:323)
at android.widget.AbsListView.obtainView(AbsListView.java:1294)
at android.widget.ListView.makeAndAddView(ListView.java:1727)
at android.widget.ListView.fillDown(ListView.java:652)
at android.widget.ListView.fillGap(ListView.java:623)
at android.widget.AbsListView.trackMotionScroll(AbsListView.java:2944)
at android.widget.AbsListView.onTouchEvent(AbsListView.java:2065)
at android.widget.ListView.onTouchEvent(ListView.java:3315)
at android.view.View.dispatchTouchEvent(View.java:3765)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:905)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:944)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:944)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:944)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:944)
at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1701)
at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1116)
at android.app.Activity.dispatchTouchEvent(Activity.java:2093)
at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1685)
at android.view.ViewRoot.handleMessage(ViewRoot.java:1802)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:143)
at android.app.ActivityThread.main(ActivityThread.java:4914)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:521)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
at dalvik.system.NativeStart.main(Native Method)
調べてみると、海外でよく同じ現象が起きているみたい。
動的にListViewを入れ替えているので、Listが空になった瞬間に動作が不安定になっているのか?
解決方法:
ArrayAdapterを実装する。
実装していないとこで発生している?のだろうか。
java.lang.NullPointerException
at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:355)
at android.widget.ArrayAdapter.getView(ArrayAdapter.java:323)
at android.widget.AbsListView.obtainView(AbsListView.java:1294)
at android.widget.ListView.makeAndAddView(ListView.java:1727)
at android.widget.ListView.fillDown(ListView.java:652)
at android.widget.ListView.fillGap(ListView.java:623)
at android.widget.AbsListView.trackMotionScroll(AbsListView.java:2944)
at android.widget.AbsListView.onTouchEvent(AbsListView.java:2065)
at android.widget.ListView.onTouchEvent(ListView.java:3315)
at android.view.View.dispatchTouchEvent(View.java:3765)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:905)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:944)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:944)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:944)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:944)
at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1701)
at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1116)
at android.app.Activity.dispatchTouchEvent(Activity.java:2093)
at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1685)
at android.view.ViewRoot.handleMessage(ViewRoot.java:1802)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:143)
at android.app.ActivityThread.main(ActivityThread.java:4914)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:521)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
at dalvik.system.NativeStart.main(Native Method)
調べてみると、海外でよく同じ現象が起きているみたい。
動的にListViewを入れ替えているので、Listが空になった瞬間に動作が不安定になっているのか?
解決方法:
ArrayAdapterを実装する。
カレンダー
11 | 2024/12 | 01 |
S | M | T | W | T | F | S |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
フリーエリア
最新CM
最新記事
(08/12)
(02/23)
(02/23)
(02/22)
(02/22)
最新TB
プロフィール
HN:
kstv2011
性別:
男性
職業:
プログラマ
趣味:
作ること
自己紹介:
プログラマー、Javaを中心にネットワーク通信系アプリを作成する男。
ブログ内検索
最古記事
(12/18)
(12/23)
(01/23)
(01/23)
(02/17)
アクセス解析