java.lang.NoClassDefFoundError: android/os/AsyncTask がでてるけど

こゆのでてない?

java.lang.NoClassDefFoundError: com.myapp.MyClassExtendingAsyncTask
at com.myapp.x.run(SourceFile:417)
at android.os.Handler.handleCallback(Handler.java:587)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:130)
at android.app.ActivityThread.main(ActivityThread.java:3859)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:507)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:889)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:647)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.ClassNotFoundException: com.myapp.MyClassExtendingAsyncTask in loader dalvik.system.PathClassLoader[/data/app/com.myapp-1.apk]
at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:240)
at java.lang.ClassLoader.loadClass(ClassLoader.java:551)
at java.lang.ClassLoader.loadClass(ClassLoader.java:511)

あたし的には, 2.x 系ででてるけど, それだけではないのか.

java.lang.NoClassDefFoundError: android/os/AsyncTask - Google グループ

Issue 81083 - android - java.lang.ClassNotFoundException: android.os.AsyncTask caused by AdMob / Google Play Services - Android Open Source Project - Issue Tracker - Google Project Hosting

解決方法としては以下が挙げられてる.

try
{
Class.forName("android.os.AsyncTask"); //it prevents AdMob from crashing on HTC with Android 4.0.x
}
catch(Throwable ignored)
{}

The AsyncTask class must be loaded on the UI thread. This is done automatically as of JELLY_BEAN.

これはどこがアナウンスするべきなのだろうか.

他にもいろいろあるような気もするけども.

java - What is the difference between NoClassDefFoundError and ClassNotFoundException? - Stack Overflow


「Custom ARChon runtime」で Chrome 上で android アプリ を動かす

まず, 動画.

なにこれ きもい.

OSX 上 Chrome で エクステンションを入れてみる.

chromeos-apk/archon.md at master · vladikoff/chromeos-apk

上記URLから, zipをダウンロードして解凍して, ロードする.

Extensions

設定画面へ.

Account_Switcher_for_Google_Option_Page

なんかこわいので止めました...

どなたかお願いします.

Run Android APKs in Chrome OS OR Chrome in OS X, Linux and Windows. - GitHub


Twitter のように端末にインストールしているアプリの一覧を取得する

Twitterが.

Twitterが、公式アプリでユーザーの端末内のアプリ一覧情報を収集する「アプリリスト」を次期アップデートで有効にする。

Twitterヘルプセンター___Twitterのアプリリストとは

Twitter、端末にインストールされたアプリの一覧収集機能を追加 - ITmedia ニュース

インストールしているアプリ情報を取得するのにパーミッションは要らない.

// アイコンから起動できるアプリのみ取得
Intent intent = new Intent(Intent.ACTION_MAIN, null);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
PackageManager pm = context.getPackageManager();
List<ResolveInfo> packs = pm.queryIntentActivities(intent, 0);
ResolveInfo info;
int count_packs = packs.size();
for (int i = 0; i < count_packs; i++) {
  info = packs.get(i);
  ActivityInfo activityInfo = info.activityInfo;
  String label = activityInfo.applicationInfo.loadLabel(pm).toString();
  String packageName = activityInfo.packageName;
  String icon = "android.resource://" + packageName + "/" + activityInfo.applicationInfo.icon;
  String description = (String) p.applicationInfo.loadDescription(pm);
  String versionName = p.versionName;
  String versionCode = ((int)p.versionCode) + "";

  Log.d("FetchInstalledApps", label + " " + packageName + " " + icon);
}

Intent.CATEGORY_LAUCHER を変えたりしながらいろんな条件で取得できる.

肝は「ActivityInfo」.

ActivityInfo | Android Developers

前述, Twitter は以下のようにアナウンスしている.

情報をTwitterに提供したくない場合は設定で無効にする必要がある。

お行儀の良い大手Twitterだからこんなに丁寧だけど.

すでに, 他のアプリで抜かれててもおかしくない, ようにも思ったり...

あなたのAndroidの個人情報がアプリ開発者によって抜き取り可能かをチェックする方法

Twitterヘルプセンター | Twitterのアプリリストとは