Android Merge Tool

Related tags

Tools AMT
Overview

Java 8

AMT

The Android Merge Tool (AMT) does what the name suggests: it merges arbitrary Android apps into a single merged app. As input it takes a number of Android packages (.apk files) and outputs the merged app as one Android package. Along with this primary output, a report is generated optionally. It contains information about the properties (e.g. taint-flows) changed.

An overview of the whole approach is illustrated in the figure above. On the one hand, the first five steps (1 - 5) represent Phase I, the app merging process. Multiple input apps are merged into a single merged app. On the other hand, Step 6 and 7 stand for Phase II. During this phase it is evaluated how accurately the merged app represents the input apps. In order to guarantee accurately merged benchmarks Phase II becomes indispensable. For more information please take a look at the associated paper (see Publications).

Usage

Two steps have to be completed in order to use AMT:

  • Step 1: Configuration
    The file amt.properties holds the AMT's configuration. The following options can be configured:
Parameter Meaning
androidPlatforms=/path/to/Android/sdks/platforms The path to the Android platforms directory
apktoolPath=/path/to/apktool ApkTool must be installed and this path has to point to the directory containing ApkTool's JAR file
apktoolJar=apktool_2.3.4.jar Mostly dependent on ApkTool's version, the JAR's filename should be adapted here.
aqlQuery=Flows IN App('%APP_APK%') USES 'FlowDroid' ? When run in check or comparison mode, an AQL-Query to execute must be defined here.
comparisonAqlQuery=Flows IN App('%APP_APK%' | 'COMBINE') USES 'FlowDroid' ? The query used for the comparison must be defined here.
outputFolder=output Any output is stored in the specified directory
  • Step 2: Launch
    AMT can be accessed from the command-line as follows:
java -jar AMT-0.0.2.jar [optional launch parameters] [list of .apk files]

for example:

java -jar AMT-0.0.2.jar -comparison -d verbose -cfg myConfig.xml A.apk B.apk

This will launch AMT in comparison mode, shorten its output and use myConfig.xml as configuration for the underlying AQL-System. All launch parameters are listed in the following table:

Parameter Meaning
-check Turns on the optional check mode
-comparison Turns on the optional comparison mode
-c %FILE%, -cfg %FILE%, -config %FILE% This parameter can be used to specify a different config file for the underlying AQL-System (By default: config.xml is used)
-debug "X", -d "X", -l "X", -loglevel "X" The output generated during the execution of this tool can be set to different levels. X may be set to: error, warning, debug, detailed, verbose (ascending precision from left to right).

Publications

License

AMT is licensed under the GNU General Public License v3 (see LICENSE).

Contact

Felix Pauck (FoelliX)
Paderborn University
[email protected]
http://www.FelixPauck.de

Links

You might also like...
A surgical debugging tool to uncover the layers under your app.
A surgical debugging tool to uncover the layers under your app.

Scalpel DEPRECATED! Android Studio 4.0's layout inspector now includes a live-updating 3D view. Use it! A surgical debugging tool to uncover the layer

Tool for create complex morphing animations using VectorDrawables (allows morphing between any pair of SVG images)

VectAlign VectAlign (a.k.a. VectorDrawableAlign) is a developer's tool which automagically aligns two VectorDrawable "pathData" strings (or SVG images

GPS tracking tool for OpenStreetMap
GPS tracking tool for OpenStreetMap

OSMTracker for Android™ official source code repository is https://github.com/labexp/osmtracker-android. For more information about the project, docum

A tool that enables advanced features through adb installing and uninstalling apps like wildcards and multi device support. Useful if you want to clean your test device from all company apks or install a lot of apks in one go.  Written in Java so it should run on your platform. GPS tracking tool for OpenStreetMap
GPS tracking tool for OpenStreetMap

OSMTracker for Android™ official source code repository is https://github.com/labexp/osmtracker-android. For more information about the project, docum

Custom content tool for The Ponies.

PoneCrafter A sneak preview of the custom content tool for The Ponies. The Ponies is a work in progress life simulator game. The game itself has not b

Tool to assist in tuning simos ECUs.
Tool to assist in tuning simos ECUs.

Simos Tools Makes use of the Macchina-A0 BLEISOTP bridge firmware originally developed by bri3d to log Simo ECUs: https://github.com/Switchleg1/esp32-

Tool to archive Progressbar95

ProgressArchiver95 Tool to archive Progressbar95 How to use Simply select the APKs you want to archive and click the Archive button. A list of ABIs an

A tool to activate FinalShell

A tool to activate FinalShell

Comments
  • Error merge apk

    Error merge apk

    Hello Error

    SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder". SLF4J: Defaulting to no-operation (NOP) logger implementation SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details. Exception in thread "main" soot.AndroidPlatformException: Android platform directory 'C:\Androidplatforms' does not exist! at soot.Scene.getAndroidAPIVersion(Scene.java:392) at soot.Scene.getAndroidJarPath(Scene.java:362) at soot.Scene.defaultAndroidClassPath(Scene.java:621) at soot.Scene.defaultClassPath(Scene.java:560) at soot.Scene.getSootClassPath(Scene.java:294) at soot.SourceLocator.getClassSource(SourceLocator.java:168) at soot.Scene.tryLoadClass(Scene.java:900) at soot.Scene.loadBasicClasses(Scene.java:1652) at soot.Scene.loadNecessaryClasses(Scene.java:1738) at de.upb.mike.amt.soot.SootObject.parseApp(SootObject.java:83) at de.upb.mike.amt.AMT.start(AMT.java:157) at de.upb.mike.amt.AMT.main(AMT.java:109)

    opened by dfdfdfs 11
  • Merge apks error, seems like androidx lib & com.google.android.material error.

    Merge apks error, seems like androidx lib & com.google.android.material error.

    Here is the log:

    java -jar AMT.jar todo.apk HelloWorld.apk
    09/28/2021 - 11:11:56 AMT-Log> AMT started! (Merging 2 apps)
    	1. /Users/x/xx/xxx/todo.apk
    	2. /Users/x/xx/xxx/HelloWorld.apk
    
    
    09/28/2021 - 11:11:56 AMT-Log> *** Step 1/5: Parsing Manifest ***
    09/28/2021 - 11:11:56 AMT-Log> successful!
    
    
    09/28/2021 - 11:11:56 AMT-Log> *** Step 2/5: Parsing Apps ***
    09/28/2021 - 11:12:08 AMT-Log> successful!
    
    
    09/28/2021 - 11:12:08 AMT-Log> *** Step 3/5: Instrumenting Classes ***
    09/28/2021 - 11:12:16 AMT-Log> successful!
    
    
    09/28/2021 - 11:12:16 AMT-Log> *** Step 4/5: Building Merged App ***
    09/28/2021 - 11:12:20 AMT-Log> Writing APK!
    09/28/2021 - 11:12:24 AMT-Log> Class "com.google.android.material.button.MaterialButtonHelper" could not be written to APK. Reason: Invalid code contained! (RuntimeException: not found: unknown)
    09/28/2021 - 11:12:24 AMT-Log> Class "androidx.print.PrintHelper$PrintUriAdapter$1" could not be written to APK. Reason: Invalid code contained! (RuntimeException: not found: unknown)
    09/28/2021 - 11:12:24 AMT-Log> Class "androidx.print.PrintHelper$PrintBitmapAdapter" could not be written to APK. Reason: Invalid code contained! (RuntimeException: not found: unknown)
    09/28/2021 - 11:12:24 AMT-Log> Class "androidx.print.PrintHelper$PrintUriAdapter" could not be written to APK. Reason: Invalid code contained! (RuntimeException: not found: unknown)
    09/28/2021 - 11:12:24 AMT-Log> Class "androidx.constraintlayout.motion.widget.MotionPaths" could not be written to APK. Reason: Invalid code contained! (RuntimeException: not found: unknown)
    09/28/2021 - 11:12:24 AMT-Log> Class "com.google.android.material.textfield.DropdownMenuEndIconDelegate" could not be written to APK. Reason: Invalid code contained! (RuntimeException: not found: unknown)
    09/28/2021 - 11:12:24 AMT-Log> Class "androidx.appcompat.widget.ScrollingTabContainerView$TabView" could not be written to APK. Reason: Invalid code contained! (RuntimeException: not found: unknown)
    09/28/2021 - 11:12:24 AMT-Log> Class "com.google.android.material.shape.MaterialShapeDrawable" could not be written to APK. Reason: Invalid code contained! (RuntimeException: not found: unknown)
    09/28/2021 - 11:12:24 AMT-Log> Class "com.google.android.material.internal.CheckableImageButton_6" could not be written to APK. Reason: Invalid code contained! (RuntimeException: not found: unknown)
    09/28/2021 - 11:12:24 AMT-Log> Class "androidx.core.view.accessibility.AccessibilityNodeInfoCompat" could not be written to APK. Reason: Invalid code contained! (RuntimeException: not found: unknown)
    09/28/2021 - 11:12:24 AMT-Log> Class "androidx.appcompat.graphics.drawable.DrawerArrowDrawable" could not be written to APK. Reason: Invalid code contained! (RuntimeException: not found: unknown)
    09/28/2021 - 11:12:24 AMT-Log> Class "androidx.navigation.NavDeepLink" could not be written to APK. Reason: Invalid code contained! (RuntimeException: not found: unknown)
    09/28/2021 - 11:12:24 AMT-Log> Class "androidx.transition.TransitionUtils" could not be written to APK. Reason: Invalid code contained! (RuntimeException: not found: unknown)
    09/28/2021 - 11:12:24 AMT-Log> Class "androidx.recyclerview.widget.GridLayoutManager_9" could not be written to APK. Reason: Invalid code contained! (RuntimeException: not found: unknown)
    09/28/2021 - 11:12:24 AMT-Log> Class "androidx.constraintlayout.solver.widgets.analyzer.BasicMeasure" could not be written to APK. Reason: Invalid code contained! (RuntimeException: not found: unknown)
    09/28/2021 - 11:12:24 AMT-Log> Class "com.google.android.material.textfield.ClearTextEndIconDelegate$2" could not be written to APK. Reason: Invalid code contained! (RuntimeException: not found: unknown)
    09/28/2021 - 11:12:24 AMT-Log> Class "androidx.core.view.ViewCompat" could not be written to APK. Reason: Invalid code contained! (RuntimeException: not found: unknown)
    09/28/2021 - 11:12:24 AMT-Log> Class "androidx.core.view.ViewCompat$5" could not be written to APK. Reason: Invalid code contained! (RuntimeException: not found: unknown)
    09/28/2021 - 11:12:24 AMT-Log> Class "androidx.core.view.ViewCompat$3" could not be written to APK. Reason: Invalid code contained! (RuntimeException: not found: unknown)
    09/28/2021 - 11:12:24 AMT-Log> Class "androidx.core.view.ViewCompat$4" could not be written to APK. Reason: Invalid code contained! (RuntimeException: not found: unknown)
    09/28/2021 - 11:12:24 AMT-Log> Class "androidx.core.view.ViewCompat$AccessibilityViewProperty" could not be written to APK. Reason: Invalid code contained! (RuntimeException: not found: unknown)
    09/28/2021 - 11:12:25 AMT-Log> Class "androidx.core.app.NotificationCompatJellybean" could not be written to APK. Reason: Invalid code contained! (RuntimeException: not found: unknown)
    09/28/2021 - 11:12:26 AMT-Log> Class "com.google.android.material.slider.BaseSlider" could not be written to APK. Reason: Invalid code contained! (RuntimeException: not found: unknown)
    09/28/2021 - 11:12:26 AMT-Log> Class "androidx.appcompat.widget.ActivityChooserModel" could not be written to APK. Reason: Invalid code contained! (RuntimeException: not found: unknown)
    09/28/2021 - 11:12:26 AMT-Log> Class "com.google.android.material.appbar.AppBarLayout_16" could not be written to APK. Reason: Invalid code contained! (RuntimeException: not found: unknown)
    09/28/2021 - 11:12:26 AMT-Log> Class "com.google.android.material.appbar.AppBarLayout_16$ScrollingViewBehavior" could not be written to APK. Reason: Invalid code contained! (RuntimeException: not found: unknown)
    09/28/2021 - 11:12:26 AMT-Log> Class "com.google.android.material.textfield.PasswordToggleEndIconDelegate$1" could not be written to APK. Reason: Invalid code contained! (RuntimeException: not found: unknown)
    09/28/2021 - 11:12:26 AMT-Log> Class "com.google.android.material.textfield.PasswordToggleEndIconDelegate$2" could not be written to APK. Reason: Invalid code contained! (RuntimeException: not found: unknown)
    09/28/2021 - 11:12:26 AMT-Log> Class "androidx.constraintlayout.solver.widgets.ConstraintWidget" could not be written to APK. Reason: Invalid code contained! (RuntimeException: not found: unknown)
    09/28/2021 - 11:12:26 AMT-Log> Class "androidx.constraintlayout.motion.widget.MotionLayout" could not be written to APK. Reason: Invalid code contained! (RuntimeException: not found: unknown)
    09/28/2021 - 11:12:27 AMT-Log> Class "androidx.fragment.app.Fragment" could not be written to APK. Reason: Invalid code contained! (RuntimeException: not found: unknown)
    09/28/2021 - 11:12:27 AMT-Log> Class "androidx.recyclerview.widget.RecyclerView_20" could not be written to APK. Reason: Invalid code contained! (RuntimeException: not found: unknown)
    09/28/2021 - 11:12:27 AMT-Log> Class "androidx.recyclerview.widget.RecyclerView_20$AdapterDataObservable" could not be written to APK. Reason: Invalid code contained! (RuntimeException: not found: unknown)
    09/28/2021 - 11:12:27 AMT-Log> Class "androidx.appcompat.app.AlertController_22" could not be written to APK. Reason: Invalid code contained! (RuntimeException: not found: unknown)
    09/28/2021 - 11:12:27 AMT-Log> Class "androidx.appcompat.widget.AppCompatTextViewAutoSizeHelper" could not be written to APK. Reason: Invalid code contained! (RuntimeException: not found: unknown)
    09/28/2021 - 11:12:27 AMT-Log> Class "androidx.appcompat.view.menu.ActionMenuItemView_26" could not be written to APK. Reason: Invalid code contained! (RuntimeException: not found: unknown)
    09/28/2021 - 11:12:27 AMT-Log> Class "androidx.constraintlayout.motion.widget.TimeCycleSplineSet$CustomSet" could not be written to APK. Reason: Invalid code contained! (RuntimeException: not found: unknown)
    09/28/2021 - 11:12:28 AMT-Log> Class "androidx.appcompat.widget.SearchView_28" could not be written to APK. Reason: Invalid code contained! (RuntimeException: not found: unknown)
    09/28/2021 - 11:12:28 AMT-Log> Class "com.google.android.material.appbar.CollapsingToolbarLayout" could not be written to APK. Reason: Invalid code contained! (RuntimeException: not found: unknown)
    09/28/2021 - 11:12:28 AMT-Log> Class "com.google.android.material.card.MaterialCardView" could not be written to APK. Reason: Invalid code contained! (RuntimeException: not found: unknown)
    09/28/2021 - 11:12:28 AMT-Log> Class "androidx.loader.content.Loader" could not be written to APK. Reason: Invalid code contained! (RuntimeException: not found: unknown)
    09/28/2021 - 11:12:28 AMT-Log> Class "com.google.android.material.textfield.TextInputLayout$AccessibilityDelegate" could not be written to APK. Reason: Invalid code contained! (RuntimeException: not found: unknown)
    09/28/2021 - 11:12:28 AMT-Log> Class "com.google.android.material.textfield.TextInputLayout$1" could not be written to APK. Reason: Invalid code contained! (RuntimeException: not found: unknown)
    09/28/2021 - 11:12:28 AMT-Log> Class "androidx.appcompat.widget.ActionMenuView_32" could not be written to APK. Reason: Invalid code contained! (RuntimeException: not found: unknown)
    09/28/2021 - 11:12:28 AMT-Log> Class "androidx.appcompat.graphics.drawable.AnimatedStateListDrawableCompat" could not be written to APK. Reason: Invalid code contained! (RuntimeException: not found: unknown)
    09/28/2021 - 11:12:28 AMT-Log> Class "androidx.fragment.app.FragmentStateManager" could not be written to APK. Reason: Invalid code contained! (RuntimeException: not found: unknown)
    09/28/2021 - 11:12:28 AMT-Log> Class "com.google.android.material.internal.ForegroundLinearLayout" could not be written to APK. Reason: Invalid code contained! (RuntimeException: not found: unknown)
    09/28/2021 - 11:12:28 AMT-Log> Class "androidx.documentfile.provider.RawDocumentFile" could not be written to APK. Reason: Invalid code contained! (RuntimeException: not found: unknown)
    09/28/2021 - 11:12:28 AMT-Log> Class "androidx.core.graphics.PaintCompat" could not be written to APK. Reason: Invalid code contained! (RuntimeException: not found: unknown)
    09/28/2021 - 11:12:28 AMT-Log> Class "androidx.recyclerview.widget.StaggeredGridLayoutManager_37" could not be written to APK. Reason: Invalid code contained! (RuntimeException: not found: unknown)
    09/28/2021 - 11:12:28 AMT-Log> Class "androidx.fragment.app.FragmentManagerViewModel" could not be written to APK. Reason: Invalid code contained! (RuntimeException: not found: unknown)
    09/28/2021 - 11:12:28 AMT-Log> Class "com.google.android.material.tabs.TabLayout$TabView" could not be written to APK. Reason: Invalid code contained! (RuntimeException: not found: unknown)
    09/28/2021 - 11:12:28 AMT-Log> Class "androidx.transition.Transition" could not be written to APK. Reason: Invalid code contained! (RuntimeException: not found: unknown)
    09/28/2021 - 11:12:28 AMT-Log> Class "androidx.recyclerview.widget.SortedList" could not be written to APK. Reason: Invalid code contained! (RuntimeException: not found: unknown)
    09/28/2021 - 11:12:28 AMT-Log> Class "androidx.collection.ArraySet" could not be written to APK. Reason: Invalid code contained! (RuntimeException: not found: unknown)
    09/28/2021 - 11:12:28 AMT-Log> Class "androidx.coordinatorlayout.widget.CoordinatorLayout_41" could not be written to APK. Reason: Invalid code contained! (RuntimeException: not found: unknown)
    09/28/2021 - 11:12:28 AMT-Log> Class "androidx.coordinatorlayout.widget.CoordinatorLayout_41$LayoutParams" could not be written to APK. Reason: Invalid code contained! (RuntimeException: not found: unknown)
    09/28/2021 - 11:12:28 AMT-Log> Class "com.google.android.material.textfield.TextInputEditText" could not be written to APK. Reason: Invalid code contained! (RuntimeException: not found: unknown)
    09/28/2021 - 11:12:28 AMT-Log> Class "androidx.constraintlayout.motion.widget.MotionConstrainedPoint" could not be written to APK. Reason: Invalid code contained! (RuntimeException: not found: unknown)
    09/28/2021 - 11:12:29 AMT-Log> Class "com.google.android.material.button.MaterialButton" could not be written to APK. Reason: Invalid code contained! (RuntimeException: not found: unknown)
    09/28/2021 - 11:12:29 AMT-Log> Class "androidx.transition.TransitionSet" could not be written to APK. Reason: Invalid code contained! (RuntimeException: not found: unknown)
    09/28/2021 - 11:12:29 AMT-Log> Class "androidx.appcompat.widget.ListPopupWindow" could not be written to APK. Reason: Invalid code contained! (RuntimeException: not found: unknown)
    09/28/2021 - 11:12:29 AMT-Log> Class "androidx.recyclerview.widget.LinearLayoutManager_45" could not be written to APK. Reason: Invalid code contained! (RuntimeException: not found: unknown)
    09/28/2021 - 11:12:29 AMT-Log> Class "androidx.constraintlayout.solver.widgets.analyzer.DependencyGraph" could not be written to APK. Reason: Invalid code contained! (RuntimeException: not found: unknown)
    09/28/2021 - 11:12:29 AMT-Log> Class "androidx.core.widget.NestedScrollView_47" could not be written to APK. Reason: Invalid code contained! (RuntimeException: not found: unknown)
    09/28/2021 - 11:12:29 AMT-Log> Class "androidx.vectordrawable.graphics.drawable.VectorDrawableCompat$VectorDrawableCompatState" could not be written to APK. Reason: Invalid code contained! (RuntimeException: not found: unknown)
    09/28/2021 - 11:12:29 AMT-Log> Class "androidx.vectordrawable.graphics.drawable.VectorDrawableCompat$VGroup" could not be written to APK. Reason: Invalid code contained! (RuntimeException: not found: unknown)
    09/28/2021 - 11:12:29 AMT-Log> Class "androidx.vectordrawable.graphics.drawable.VectorDrawableCompat$VFullPath" could not be written to APK. Reason: Invalid code contained! (RuntimeException: not found: unknown)
    09/28/2021 - 11:12:29 AMT-Log> Class "androidx.constraintlayout.motion.widget.MotionController" could not be written to APK. Reason: Invalid code contained! (RuntimeException: not found: unknown)
    09/28/2021 - 11:12:29 AMT-Log> Class "androidx.recyclerview.widget.ItemTouchHelper" could not be written to APK. Reason: Invalid code contained! (RuntimeException: not found: unknown)
    09/28/2021 - 11:12:29 AMT-Log> Class "com.google.android.material.bottomsheet.BottomSheetBehavior_48" could not be written to APK. Reason: Invalid code contained! (RuntimeException: not found: unknown)
    09/28/2021 - 11:12:29 AMT-Log> Class "androidx.appcompat.view.menu.MenuBuilder" could not be written to APK. Reason: Invalid code contained! (RuntimeException: not found: unknown)
    09/28/2021 - 11:12:29 AMT-Log> Class "com.google.android.material.timepicker.ClockHandView" could not be written to APK. Reason: Invalid code contained! (RuntimeException: not found: unknown)
    09/28/2021 - 11:12:29 AMT-Log> Class "androidx.drawerlayout.widget.DrawerLayout_51" could not be written to APK. Reason: Invalid code contained! (RuntimeException: not found: unknown)
    09/28/2021 - 11:12:29 AMT-Log> Class "androidx.fragment.app.FragmentAnim$EndViewTransitionAnimation" could not be written to APK. Reason: Invalid code contained! (RuntimeException: not found: unknown)
    09/28/2021 - 11:12:29 AMT-Log> Class "com.google.android.material.textfield.CutoutDrawable" could not be written to APK. Reason: Invalid code contained! (RuntimeException: not found: unknown)
    09/28/2021 - 11:12:29 AMT-Log> Class "androidx.appcompat.app.AppCompatDelegateImpl" could not be written to APK. Reason: Invalid code contained! (RuntimeException: not found: unknown)
    09/28/2021 - 11:12:29 AMT-Log> Class "androidx.constraintlayout.motion.widget.MotionScene$Transition" could not be written to APK. Reason: Invalid code contained! (RuntimeException: not found: unknown)
    09/28/2021 - 11:12:29 AMT-Log> Class "androidx.appcompat.widget.ActionMenuPresenter" could not be written to APK. Reason: Invalid code contained! (RuntimeException: not found: unknown)
    09/28/2021 - 11:12:29 AMT-Log> Class "androidx.fragment.app.FragmentManager" could not be written to APK. Reason: Invalid code contained! (RuntimeException: not found: unknown)
    09/28/2021 - 11:12:30 AMT-Log> Class "androidx.appcompat.view.ActionBarPolicy" could not be written to APK. Reason: Invalid code contained! (RuntimeException: not found: unknown)
    09/28/2021 - 11:12:30 AMT-Log> Class "androidx.recyclerview.widget.DefaultItemAnimator" could not be written to APK. Reason: Invalid code contained! (RuntimeException: not found: unknown)
    09/28/2021 - 11:12:30 AMT-Log> Class "androidx.appcompat.widget.ActionBarContextView_54" could not be written to APK. Reason: Invalid code contained! (RuntimeException: not found: unknown)
    09/28/2021 - 11:12:30 AMT-Log> Class "com.google.android.material.chip.ChipDrawable" could not be written to APK. Reason: Invalid code contained! (RuntimeException: not found: unknown)
    09/28/2021 - 11:12:30 AMT-Log> Class "androidx.core.widget.TextViewCompat$OreoCallback" could not be written to APK. Reason: Invalid code contained! (RuntimeException: not found: unknown)
    09/28/2021 - 11:12:30 AMT-Log> Class "com.google.android.material.card.MaterialCardViewHelper" could not be written to APK. Reason: Invalid code contained! (RuntimeException: not found: unknown)
    09/28/2021 - 11:12:30 AMT-Log> Class "androidx.viewpager.widget.ViewPager_56" could not be written to APK. Reason: Invalid code contained! (RuntimeException: not found: unknown)
    09/28/2021 - 11:12:30 AMT-Log> Class "androidx.appcompat.widget.SwitchCompat" could not be written to APK. Reason: Invalid code contained! (RuntimeException: not found: unknown)
    09/28/2021 - 11:12:30 AMT-Log> Class "androidx.fragment.app.FragmentActivity" could not be written to APK. Reason: Invalid code contained! (RuntimeException: not found: unknown)
    09/28/2021 - 11:12:30 AMT-Log> Class "androidx.fragment.app.FragmentActivity$HostCallbacks" could not be written to APK. Reason: Invalid code contained! (RuntimeException: not found: unknown)
    09/28/2021 - 11:12:30 AMT-Log> Class "androidx.core.view.GestureDetectorCompat$GestureDetectorCompatImplBase" could not be written to APK. Reason: Invalid code contained! (RuntimeException: not found: unknown)
    09/28/2021 - 11:12:30 AMT-Log> Class "androidx.core.view.WindowInsetsCompat" could not be written to APK. Reason: Invalid code contained! (RuntimeException: not found: unknown)
    09/28/2021 - 11:12:33 AMT-Log> successful!
    
    
    09/28/2021 - 11:12:33 AMT-Log> *** Step 5/5: Run Apktool (Merge Manifests) ***
    09/28/2021 - 11:12:57 AMT-Log> File could not be moved from /Users/x/bin/todo/dist/todo.apk to /Users/x/xx/xxx/sootOutput/merged.apk
    09/28/2021 - 11:12:58 AMT-Log> successful!
    
    
    09/28/2021 - 11:12:58 AMT-Log> Stored in: /Users/x/xx/xxx/output/239d512be3997e73bef660e50b86db429031087b
    
    
    09/28/2021 - 11:12:58 AMT-Log> AMT finished! (62s)
    

    and the apks: todo-HelloWorld.zip

    So, How to solve this error? Thanks, best regards.

    opened by hwangjr 9
Releases(2.0.0)
A simple utility to remove unused resources in your Android app to lower the size of the APK. It's based on the Android lint tool output.

android-resource-remover android-resource-remover is utility that removes unused resources reported by Android Lint from your project. The goal is to

Keepsafe 1.3k Dec 16, 2022
A tool to install components of the Android SDK into a Maven repository or repository manager to use with the Android Maven Plugin, Gradle and other tools.

Maven Android SDK Deployer Original author including numerous fixes and changes: Manfred Moser [email protected] at simpligility technologies i

simpligility 1.4k Dec 27, 2022
A super fast build tool for Android, an alternative to Instant Run

Freeline Freeline is a super fast build tool for Android and an alternative to Instant Run. Caching reusable class files and resource indices, it enab

Alibaba 5.5k Jan 2, 2023
Command-line tool to count per-package methods in Android .dex files

dex-method-counts Simple tool to output per-package method counts in an Android DEX executable grouped by package, to aid in getting under the 65,536

Mihai Parparita 2.6k Nov 25, 2022
Android Material Design Theme UI and Tool Library. Support: 4.0.3~O

GitHub OSChina 中文 English Genius-Android Genius-Android: by Material Design style and some commonly used packages. Starting in 2015, The divided into

Qiujuer 2.3k Dec 27, 2022
A command line tool that helps bulk manage resources in an Android project

Resource Mover ResourceMover is a command line tool that helps bulk manage resources in an Android project. Installation Clone project Build CLI jar u

Shopify 4 Dec 24, 2021
Android Studio's Vector Drawable conversion tool in convenient packaging.

Vector Drawable Tool This repository is simply a repackaging of the vector drawable tool from the Android Studio source code. The included Gradle file

Ryan Harter 55 Sep 26, 2022
Localization tool for Android Studio Projects

Android Strings Resource Language Diff tool In the event any additional languages are intended to be supported by your app. You can use this strings-d

Braxton Nunnally 1 Mar 24, 2022