2017-08-21 16 views
1

apkをインストールした直後にadbコマンドを使用してapkを起動しようとしていますが、ClassNotFoundExceptionが発生し、アプリケーションがクラッシュしています。adbシェルがClassNotFoundExceptionを開始し始めています

マイログイン:

java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.sample.test.one/com.sample.test.one.MainActivity}: java.lang.ClassNotFoundException: Didn't find class "com.sample.test.one.MainActivity" on path: DexPathList[[zip file "/data/app/com.sample.test.one-1/base.apk"],nativeLibraryDirectories=[/data/app/com.sample.test.one-1/lib/arm, /system/lib, /vendor/lib]] 
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2849) 
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3045) 
    at android.app.ActivityThread.-wrap14(ActivityThread.java) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1642) 
    at android.os.Handler.dispatchMessage(Handler.java:102) 
    at android.os.Looper.loop(Looper.java:154) 
    at android.app.ActivityThread.main(ActivityThread.java:6776) 
    at java.lang.reflect.Method.invoke(Native Method) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1518) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1408) 
    Caused by: java.lang.ClassNotFoundException: Didn't find class "com.sample.test.one.MainActivity" on path: DexPathList[[zip file "/data/app/com.sample.test.one-1/base.apk"],nativeLibraryDirectories=[/data/app/com.sample.test.one-1/lib/arm, /system/lib, /vendor/lib]] 
    at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:380) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:312) 
    at android.app.Instrumentation.newActivity(Instrumentation.java:1086) 
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2839) 
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3045)  
    at android.app.ActivityThread.-wrap14(ActivityThread.java)  
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1642)  
    at android.os.Handler.dispatchMessage(Handler.java:102)  
    at android.os.Looper.loop(Looper.java:154)  
    at android.app.ActivityThread.main(ActivityThread.java:6776)  
    at java.lang.reflect.Method.invoke(Native Method)  
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1518)  
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1408)  

フロー:

adb install test.apk 

adb shell am start -n com.sample.test.one/com.sample.test.one.MainActivity 

or 

adb shell am start -a android.intent.action.Main -n com.sample.test.one/.MainActivity 

私は実行する場合、私はadb shell commandsの上にしようとしていますが、アプリが起動に失敗したが、私は観察している1つのシナリオれますAndroidスタジオのコードとアプリがデバイスにインストールされた後、 "adb shell am start"コマンドを実行しようとするとorksは問題ありませんが、 "adb install apk"を試してみると、このコマンドは機能しません。

+1

これらの方法でapkからMainActivityの名前を取得しようとしましたか:https://stackoverflow.com/q/6109234/3162918 – bendaf

答えて

0

私はこの状況に一度遭遇しましたが、MultiDexをグラデーションに追加した後、すべてがうまくいきます。

ステップ1

ステップ2

defaultConfig { 
     minSdkVersion minVersion+ 
     targetSdkVersion targetVersion+ 

     multiDexEnabled true 
    } 

dexOptions { 
     incremental true 
     javaMaxHeapSize "4g" 
} 

追加のGradle

compile 'com.android.support:multidex:1.0.0' 

ステップ3 変更のGradleプロパティ

org.gradle.jvmargs=-Xmx4096m 

このトリックを試してください。

+0

ありがとう、それは魅力のように働いて、あなたは私の一日を保存:) –

+0

あなたは精緻化できますかこれはなぜですか?私はこれを試みたが、それは私のために働かなかった。 –

0

英語は母国語ではありません。入力ミスをお許しください。

ソリューション: アクティビティを探し、アプリのプロジェクトファイルにAndroidMainfest.xmlを見てください、このアクティビティ名プロパティを覚えて、この範囲内でこの

 <intent-filter> 
      <action android:name="android.intent.action.MAIN"/> 
      <category android:name="android.intent.category.LAUNCHER"/> 
     </intent-filter> 

が含まれています。 使用このコマンド

adb shell am start -D -n com.mycompany.moba.lala/com.epicgames.ue4.SplashActivity 

は、以前の名前のパスでcom.epicgames.ue4.SplashActivityを交換してください。

関連する問題