###前提・実現したいこと
同じAPKをインストールしても、
Android 6.0.1では問題なく実行できるが、
Android 4.4.4では起動すらできません。
開発は Android 6.0.1 の端末で全て行いました。
(Hello Worldから最終的なAPKの署名をするまで)
minSdkVersionを19にしているので Android 4.4.4の端末でも実行できるかと思いましたが、
起動すらできませんでした。
###発生している問題・エラーメッセージ
AndroidのLogcatのログ
10-10 21:49:19.553 2222-2222/net.myapp.myappandroid E/AndroidRuntime: FATAL EXCEPTION: main Process: net.myapp.myappandroid, PID: 2222 java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{net.myapp.myappandroid/net.myapp.myappandroid.MainActivity}: java.lang.ClassNotFoundException: Didn't find class "net.myapp.myappandroid.MainActivity" on path: DexPathList[[zip file "/data/app/net.myapp.myappandroid-1.apk"],nativeLibraryDirectories=[/data/app-lib/net.myapp.myappandroid-1, /vendor/lib, /system/lib]] at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2131) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2271) at android.app.ActivityThread.access$800(ActivityThread.java:144) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1205) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:136) at android.app.ActivityThread.main(ActivityThread.java:5179) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:515) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:798) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:614) at dalvik.system.NativeStart.main(Native Method) Caused by: java.lang.ClassNotFoundException: Didn't find class "net.myapp.myappandroid.MainActivity" on path: DexPathList[[zip file "/data/app/net.myapp.myappandroid-1.apk"],nativeLibraryDirectories=[/data/app-lib/net.myapp.myappandroid-1, /vendor/lib, /system/lib]] at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56) at java.lang.ClassLoader.loadClass(ClassLoader.java:497) at java.lang.ClassLoader.loadClass(ClassLoader.java:457) at android.app.Instrumentation.newActivity(Instrumentation.java:1061) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2122) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2271) at android.app.ActivityThread.access$800(ActivityThread.java:144) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1205) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:136) at android.app.ActivityThread.main(ActivityThread.java:5179) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:515) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:798) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:614) at dalvik.system.NativeStart.main(Native Method)
###試したこと
・AndroidManifest.xmlのcompileSdkVersion 24を19に変更した。
→そもそもコンパイルが通らなくなった為、失敗。
・Kitkatの端末にXposedが入っていたので削除した。
→関係無し
・Kitkatの端末再起動。
→関係無し
・MainActivityが見つけられてないようなログを吐いていた為、
Googleで調べたところEclipseの場合はAndroid Private Libraries
にチェックを入れてビルドする必要があるという情報が見つかった。(http://android.keicode.com/devenv/class-not-found.php)
→AndoirdStudioでは同様の設定項目が見つからなかった為、失敗
###補足情報(言語/FW/ツール等のバージョンなど)
-
Java 1.8
-
AndroidStudio 2.2
-
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="net.myapp.myappandroid" android:versionCode="1" android:versionName="1.0.0"> <!-- Include required permissions for Google Mobile Ads to run--> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> <application android:allowBackup="true" android:icon="@drawable/iv_logo" android:label="@string/app_name" android:supportsRtl="true" android:theme="@style/AppTheme" > <!--This meta-data tag is required to use Google Play Services.--> <meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" /> <activity android:name="MainActivity" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name="SecondActivity" android:configChanges="orientation|screenSize" /> <activity android:name="SettingsActivity" /> <!--Include the AdActivity configChanges and theme. --> <activity android:name="com.google.android.gms.ads.AdActivity" android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize" android:theme="@android:style/Theme.Translucent" /> </application> </manifest>
- build.gradle
apply plugin: 'com.android.application' android { compileSdkVersion 24 buildToolsVersion "24.0.3" defaultConfig { applicationId "net.myapp.myappvandroid" minSdkVersion 19 targetSdkVersion 19 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" multiDexEnabled true jackOptions { enabled true } } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } compileOptions { targetCompatibility JavaVersion.VERSION_1_8 sourceCompatibility JavaVersion.VERSION_1_8 } productFlavors { } } dependencies { compile fileTree(include: ['*.jar'], dir: 'libs') androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { exclude group: 'com.android.support', module: 'support-annotations' }) compile 'com.android.support:appcompat-v7:24.2.1' compile 'com.android.support:support-v13:24.2.1' compile 'com.github.akarnokd:ixjava:0.90.0' compile 'com.google.android.gms:play-services:6.+' }
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。