端末特有のライブラリについて

748 views
Skip to first unread message

beu3

unread,
Oct 21, 2011, 2:18:18 AM10/21/11
to android-g...@googlegroups.com
Eclipse on Win 上で Android アプリを作成しております。
端末特有の機能を使うアプリを組む場合、機能提供側から開発者用のはりぼて jar ファイルが提供され、端末に apk ファイルを入れるときの apk ファイル (詳しくは dex ファイル) からはその jar ファイルを外しておくといった形にするようです。
一昨日まではこの形で実機に apk を入れて動作させることができていたのですが、一昨日 Android SDK と Eclipse ADT を更新してから、作る apk ファイルにはりぼて jar ファイルの内容が入るようになってしまい、実行時に例外を発生するようになってしまいました:
java.lang.IllegalAccessError: Class ref in pre-verified class resolved to unexpected implementation

SDK, ADT ともに綺麗に以前の環境にもどすことはできないようです (もとのバージョンが web に無いようです)。
また、Eclipse と Android SDK をインストールし直すなどのことをしてみたのですが、一向に直りません。
何が悪いのでしょうか?

以前の環境とは、おそらく 2011/09 時点での最新のもの。で、eclipse のプラグイン ECLIPSE_DIR\plugins\com.android.ide.eclipse.adt_xxxx.jar などが 12.0.0 の値を持つものです。これが 14.0.0 に上がっていたようです。SDK の方はいろいろ更新されており把握できていません。

Android OS のターゲットは 2.3.3。
メーカーのはりぼて jar ファイルは、jar ファイルとしてではなく、ユーザー ライブラリとして定義してリンクしておき、Eclipse の [Properties] -> [Java Build Path] -> [Order and Export] ではチェックは外しておきます。
また、AndroidManifest.xml の /manifest/application 下に <uses-library android:name="パッケージパス" /> を書きます。
たしか、これだけの設定で、このライブラリが入っていない apk ファイルができるはずです。
apk ファイル (詳しくは dex ファイル) にこのライブラリの内容が入っているか否かは smali で確認しました。

以上、よろしくお願いいたします。

鈴木 淳

unread,
Oct 21, 2011, 2:44:50 AM10/21/11
to android-g...@googlegroups.com
同様のことを経験しました。
対策は以下をご覧ください。

https://twitter.com/#!/pccraft_co_jp

> apk ファイル (詳しくは dex ファイル) にこのライブラリの内容が入っている
> か否かは smali で確認しました。
>
> 以上、よろしくお願いいたします。
>
> --
> このメールは Google グループのグループ「日本Androidの会」の登録者に送ら
> れています。
> このディスカッションをウェブ上で閲覧するには、https://groups.google.com
> /d/msg/android-group-japan/-/26CXl7hJUeoJ にアクセスしてください。
> このグループに投稿するには、android-g...@googlegroups.com にメー
> ルを送信してください。
> このグループから退会するには、android-group-
> japan+un...@googlegroups.com にメールを送信してください。
> 詳細については、http://groups.google.com/group/android-group-japan?hl=ja
> からこのグループにアクセスしてください。


--
有限会社ピーシークラフト
http://pc-craft.co.jp/

beu3

unread,
Oct 21, 2011, 5:33:28 AM10/21/11
to android-g...@googlegroups.com, in...@pc-craft.co.jp
@pc-craft.co.jp さん、素早いフォローありがとうございます。

うーむ、やはりバージョンを下げないとダメですか。
とりあえず、強制的に環境のバージョンをもどす形を試してみたいと思います。

beu3

unread,
Oct 27, 2011, 7:51:34 AM10/27/11
to android-g...@googlegroups.com, in...@pc-craft.co.jp
本件と同様の話が、Android の公式 issues に載っているようです。たとえば
など。
一時的な対処方法としては、dex に入れたくないライブラリは、システム ライブラリーとしてチェックすると入らないことがわかっています。
Reply all
Reply to author
Forward
0 new messages