Wir haben ein Android-Projekt, das durch Hinzufügen von Android-support-v7-AppCompat- und Google-Play-Services_lib-Bibliotheken aktualisiert werden sollte. Wir fügten sie zu Ant-Skript:Hinzufügen von AppCompat- und GooglePlayServices-Bibliotheken zu Ant-Projekt
<property name="android-support-v7-appcompat-folder" value="../android-support-v7-appcompat"/>
<property name="android-support-v7-appcompat-src-folder" value="${android-support-v7-appcompat-folder}/src"/>
<property name="android-support-v7-appcompat-resource-folder" value="${android-support-v7-appcompat-folder}/res"/>
<property name="android-support-v7-appcompat-libs-folder" value="${android-support-v7-appcompat-folder}/libs"/>
<property name="google-play-services-folder" value="../google-play-services_lib"/>
<property name="google-play-services-src-folder" value="${google-play-services-folder}/src"/>
<property name="google-play-services-resource-folder" value="${google-play-services-folder}/res"/>
<property name="google-play-services-libs-folder" value="${google-play-services-folder}/libs"/>
<target name="compile" depends="resource-src, aidl">
<path id="project.javac.classpath">
<path refid="project.all.jars.path" />
<path refid="tested.project.classpath" />
</path>
<javac encoding="ascii" target="1.7" source="1.7"
debug="true" extdirs="" includeantruntime="false"
destdir="${out-classes}"
bootclasspath="${android.jar}">
<src path="${source-folder}" />
<src path="${kxml-folder}" />
<src path="${jzlib-folder}" />
<src path="${bouncycastle-folder}" />
<src path="${gen-folder}" />
<src path="${android-support-v7-appcompat-src-folder}" />
<src path="${google-play-services-src-folder}" />
<classpath>
<fileset dir="${android-support-v7-appcompat-libs-folder}" includes="*.jar"/>
<fileset dir="${google-play-services-libs-folder}" includes="*.jar"/>
<fileset dir="${external-libs-folder}" includes="*.jar"/>
<fileset dir="${native-libs-folder}" includes="**/*.jar"/>
<pathelement path="${main-out-classes}"/>
</classpath>
</javac>
</target>
<target name="dex" depends="compile">
<apply executable="${sdk.buildTools.dir}\dx.bat" failonerror="true" parallel="true">
<arg value="--dex" />
<arg value="--output=${intermediate-dex-location}" />
<arg path="${out-classes-location}" />
<fileset dir="${android-support-v7-appcompat-libs-folder}" includes="*.jar"/>
<fileset dir="${google-play-services-libs-folder}" includes="*.jar"/>
<fileset dir="${external-libs-folder}" includes="*.jar"/>
<fileset dir="${native-libs-folder}" includes="**/*.jar"/>
</apply>
</target>
und Projekt Eclipse. Wir können unsere Anwendung ohne Probleme mit Eclipse installieren und ausführen. Aber .apk, die von Ant gebaut wurde, können wir einfach installieren. Nach versuchen installierte Software öffnen wir mit Ausnahme in logcat gegenüber:
java.lang.RuntimeException: Kann Aktivität ComponentInfo {com.my.android/com.my.android.Program} starten: java. lang.NullPointerException bei android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2184) bei android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2233) bei android.app.ActivityThread.access $ 800 (ActivityThread.java : 135) um android.app.ActivityThread $ H.handleMessage (ActivityThread.java:1196) bei android.os.Handler. dispatchMessage (Handler.java:102) um android.os.Looper.loop (Looper.java:136) um android.app.ActivityThread.main (ActivityThread.java:5001) um java.lang.reflect.Method. invokeNative (Native Methode) um java.lang.reflect.Method.invoke (Methode.java:515) um com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run (ZygoteInit.java:785) bei com.android .internal.os.ZygoteInit.main (ZygoteInit.java:601) bei dalvik.system.NativeStart.main (native Methode)
verursacht durch: java.lang.NullPointerException bei android.support.v7.app. AppCompatDelegateImplV7.createSubDecor (AppCompatDelegateImplV7.java:457) bei android.support.v7.app.AppCompatDelegateImplV7.ensureSubDecor (AppCompatDelegateImplV7.java:279) bei android.support.v7.app.AppCompatDelegateImplV7.setContentView (AppCompatDelegateImplV7.java:244) bei android.support.v7. app.AppCompatActivity.setContentView (AppCompatActivity.java:114) bei com.my.android.Program.onCreate (Program.java:180) um android.app.Activity.performCreate (Activity.java:5231) um android. app.Instrumentation.callActivityOnCreate (Instrumentation.java:1087) bei android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2148)
In gegebener Zeile rufen wir setContentView (Splash); Wir überprüften, ob die Bilddatei in Geltendmachung und Bitmap und ImageView korrekt initialisiert war.
ImageView splash = new ImageView(this);
splash.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT,
LayoutParams.MATCH_PARENT));
splash.setBackgroundColor(Color.BLACK);
String splashUri = getSplashScreenUri();
Bitmap splashBitmap = ImageUtils.getImage(splashUri);
splash.setImageBitmap(splashBitmap);
splash.setScaleType(ScaleType.FIT_XY);
DebugLog.log("splashUri is " + splashUri); //correct path
DebugLog.log("splashBitmap is null " + (null == splashBitmap)); //false
DebugLog.log("splashBitmap height " + splashBitmap.getHeight()); //correct height
setContentView(splash); //line 180
Was haben wir für Ant-Skript vermisst?
Ich habe bereits Ressourcen von google-play-services_lib und android-support-v7-appcompat, nicht nur bu Referenzpfad, sondern durch Ausführen von aapt.exe mit dem Erzeugen von R, Manifest.java Dateien aus Ressourcen. Es ist also nicht notwendig, build.xml für diese beiden Projekte zu generieren. Ich habe versucht, Ihrem zweiten Vorschlag zu folgen, aber ich sehe immer noch mit demselben Fehler :( – user809808