使用scala编写Android项目

来源:互联网 发布:mac如何删除双系统 编辑:程序博客网 时间:2024/06/08 05:55

开发环境

Idea 10.5

Maven 3

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>com.example</groupId>    <artifactId>scala</artifactId>    <version>1.0</version>    <packaging>apk</packaging>    <name>scala</name>    <repositories>        <repository>            <id>scala-tools.org</id>            <name>Scala-tools Maven2 Repository</name>            <url>http://scala-tools.org/repo-releases</url>        </repository>    </repositories>    <pluginRepositories>        <pluginRepository>            <id>scala-tools.org</id>            <name>Scala-tools Maven2 Repository</name>            <url>http://scala-tools.org/repo-releases</url>        </pluginRepository>    </pluginRepositories>    <dependencies>        <dependency>            <groupId>com.google.android</groupId>            <artifactId>android</artifactId>            <version>2.2.1</version>            <scope>provided</scope>        </dependency>        <dependency>            <groupId>com.google.android</groupId>            <artifactId>android-test</artifactId>            <version>2.2.1</version>            <scope>provided</scope>        </dependency>        <dependency>            <groupId>org.scala-lang</groupId>            <artifactId>scala-library</artifactId>            <version>2.8.0</version>        </dependency>    </dependencies>    <build>        <plugins>            <plugin>                <groupId>org.scala-tools</groupId>                <artifactId>maven-scala-plugin</artifactId>                <version>2.13.1</version>                <executions>                    <execution>                        <id>scala-compile-first</id>                        <phase>process-resources</phase>                        <goals>                            <goal>add-source</goal>                            <goal>compile</goal>                        </goals>                    </execution>                    <execution>                        <id>scala-test-compile</id>                        <phase>process-test-resources</phase>                        <goals>                            <goal>testCompile</goal>                        </goals>                    </execution>                </executions>            </plugin>            <plugin>                <groupId>com.pyx4me</groupId>                <artifactId>proguard-maven-plugin</artifactId>                <version>2.0.4</version>                <executions>                    <execution>                        <phase>process-classes</phase>                        <goals>                            <goal>proguard</goal>                        </goals>                    </execution>                </executions>                <configuration>                    <maxMemory>256m</maxMemory>                    <injar>android-classes</injar>                    <libs>                        <lib>${rt.jar.path}</lib>                    </libs>                    <obfuscate>false</obfuscate>                    <options>                        <option>-keep public class * extends android.app.Activity</option>                        <option>-keep public class * extends android.app.Application</option>                        <option>-keep public class * extends android.app.Service</option>                        <option>-keep public class * extends android.content.BroadcastReceiver</option>                        <option>-keep public class * extends android.content.ContentProvider</option>                        <option>-dontskipnonpubliclibraryclasses</option>                        <option>-dontoptimize</option>                        <option>-printmapping map.txt</option>                        <option>-printseeds seed.txt</option>                        <option>-ignorewarnings</option>                    </options>                </configuration>            </plugin>            <plugin>                <groupId>com.jayway.maven.plugins.android.generation2</groupId>                <artifactId>maven-android-plugin</artifactId>                <version>2.8.4</version>                <configuration>                    <sdk>                        <platform>8</platform>                    </sdk>                    <emulator>                        <avd>Android2.2</avd>                    </emulator>                    <deleteConflictingFiles>true</deleteConflictingFiles>                    <undeployBeforeDeploy>true</undeployBeforeDeploy>                </configuration>                <extensions>true</extensions>            </plugin>            <plugin>                <artifactId>maven-compiler-plugin</artifactId>                <version>2.3</version>            </plugin>        </plugins>    </build>         <properties>                <rt.jar.path>${env.JAVA_HOME}/jre/lib/rt.jar</rt.jar.path>                <jsse.jar.path>${env.JAVA_HOME}/jre/lib/jsse.jar</jsse.jar.path>            </properties></project>


如果遇到以下问题

[ERROR] Failed to execute goal com.jayway.maven.plugins.android.generation2:maven-android-plugin:2.8.4:dex (default-dex) on project scala: MojoExecutionException: ANDROID-040-001: Could not execute: Command = cmd.exe /X /C "D:\Java\androidSdk\platform-tools\dx.bat --dex --output=D:\Java\IDEA\Project\scalatest\scala\target\classes.dex D:\Java\IDEA\Project\scalatest\scala\target\android-classes", Result = 2 -> [Help 1]

是因为pom.xml文件中缺少proguard组件(shift!为啥一定要混淆。。不混淆就不能用啦)

原创粉丝点击