java - Unable to start activity from extended activity given in jar -
i struggling weird problem when restarting old project of mine.
i have 2 projects:
- library provides class extends standard activity.
- application should use mentioned class starting activity.
when try start application encounter error:
java.lang.runtimeexception: unable instantiate activity componentinfo{org.bsoftware.catengine.example/org.bsoftware.catengine.example.mainactivity}: java.lang.classnotfoundexception: didn't find class "org.bsoftware.catengine.example.mainactivity" on path: dexpathlist[[zip file "/data/app/org.bsoftware.catengine.example-1/base.apk"],nativelibrarydirectories=[/vendor/lib, /system/lib]] few info before "just fix manifest" comments :)
all worked fine when android application (one project).
application crash when mainactivity extends catengineactivity class provided jar file (it's abstract class extends activity).
- application do not crash when mainactivity extends activity standard android lib.
do have ideas went wrong in case?
library project pom.xml:
<?xml version="1.0" encoding="utf-8"?> <project xmlns="http://maven.apache.org/pom/4.0.0" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:schemalocation="http://maven.apache.org/pom/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelversion>4.0.0</modelversion> <groupid>org.bsoftware.catengine</groupid> <artifactid>cat-engine-core</artifactid> <version>0.1.0</version> <properties> <project.build.sourceencoding>utf-8</project.build.sourceencoding> <project.reporting.outputencoding>utf-8</project.reporting.outputencoding> </properties> <dependencies> <dependency> <groupid>com.google.android</groupid> <artifactid>android</artifactid> <version>4.1.1.4</version> <scope>provided</scope> </dependency> </dependencies> <build> <plugins> <plugin> <artifactid>maven-compiler-plugin</artifactid> <version>3.1</version> <configuration> <source>1.6</source> <target>1.6</target> </configuration> </plugin> </plugins> </build> </project> library project manifest:
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="eu.catengine.activity" android:versioncode="1" android:versionname="1.0.0" > </manifest> application pom.xml:
<?xml version="1.0" encoding="utf-8"?> <project xmlns="http://maven.apache.org/pom/4.0.0" xmlns:xsi="http://www.w3.org/2001/xmlschema-instance" xsi:schemalocation="http://maven.apache.org/pom/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelversion>4.0.0</modelversion> <groupid>eu.catengine</groupid> <artifactid>game-example</artifactid> <version>0.1.0</version> <properties> <!-- use utf-8 --> <project.build.sourceencoding>utf-8</project.build.sourceencoding> <project.reporting.outputencoding>utf-8</project.reporting.outputencoding> </properties> <dependencies> <dependency> <groupid>com.google.android</groupid> <artifactid>android</artifactid> <version>4.1.1.4</version> <scope>provided</scope> </dependency> <dependency> <groupid>org.bsoftware.catengine</groupid> <artifactid>cat-engine-core</artifactid> <version>0.1.0</version> <scope>provided</scope> </dependency> </dependencies> <build> <plugins> <plugin> <groupid>com.jayway.maven.plugins.android.generation2</groupid> <artifactid>android-maven-plugin</artifactid> <version>3.9.0-rc.1</version> <configuration> <sdk> <platform>19</platform> </sdk> <deleteconflictingfiles>true</deleteconflictingfiles> <undeploybeforedeploy>true</undeploybeforedeploy> </configuration> <extensions>true</extensions> </plugin> <plugin> <artifactid>maven-compiler-plugin</artifactid> <version>3.1</version> <configuration> <source>1.6</source> <target>1.6</target> </configuration> </plugin> </plugins> </build> </project> application manifest:
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="org.bsoftware.catengine.example" android:versioncode="1" android:versionname="1.0.0" > <application android:label="@string/app_name" > <activity android:name=".mainactivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.main" /> <category android:name="android.intent.category.launcher" /> </intent-filter> </activity> </application> </manifest> i've tried full package path:
android:name="org.bsoftware.catengine.example.mainactivity" proof of concept can found here: https://github.com/mbienkowski/problems/tree/feature/001
can provide code in mainactivity & catengineactivity?
i suspect catengineactivity uses xml layout file setcontentview()? if so, cause because android resources not packaged in jar file. have package catengineactivity aar file, contain android resources.
if so, try starter kit on aar, , see if helps. can ignore uploading bintray.
Comments
Post a Comment