我有一个问题,因为我在Playstore上更新了我的应用程序.自此更新以来,抛出异常,但我没有更改与此异常相关的任何内容.
堆栈跟踪:
java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{de.opiatefuchs.onthejobtimerlight/de.opiatefuchs.onthejobtimerlight.OnTheJobTimerActivity}: java.lang.ClassNotFoundException: Didn't find class "de.opiatefuchs.onthejobtimerlight.OnTheJobTimerActivity" on path: DexPathList[[zip file "/data/app/de.opiatefuchs.onthejobtimerlight-1/base.apk"],nativeLibraryDirectories=[/vendor/lib, /system/lib]]
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2236)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387)
at android.app.ActivityThread.access$800(ActivityThread.java:151)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5254)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
Caused by: java.lang.ClassNotFoundException: Didn't find class "de.opiatefuchs.onthejobtimerlight.OnTheJobTimerActivity" on path: DexPathList[[zip file "/data/app/de.opiatefuchs.onthejobtimerlight-1/base.apk"],nativeLibraryDirectories=[/vendor/lib, /system/lib]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
at android.app.Instrumentation.newActivity(Instrumentation.java:1066)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2226)
... 10 more
Suppressed: java.lang.ClassNotFoundException: de.opiatefuchs.onthejobtimerlight.OnTheJobTimerActivity
at java.lang.Class.classForName(Native Method)
at java.lang.BootClassLoader.findClass(ClassLoader.java:781)
at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)
at java.lang.ClassLoader.loadClass(ClassLoader.java:504) …Run Code Online (Sandbox Code Playgroud) 更新后Google Ads SDK to 19.0.0给出了一条已弃用的警告消息addTestDevice(),而我搜索此链接以解决问题但没有成功。我该如何解决?
这是我的代码
mAdView.loadAd(new RequestConfiguration.Builder
.setTestDeviceIds(AdRequest.DEVICE_ID_EMULATOR) // show error
.setTestDeviceIds(DEV_ID) // show error
.build());
Run Code Online (Sandbox Code Playgroud)
和开发者网站建议
// Deprecated AdRequest.Builder.addTestDevice().Use
RequestConfiguration.Builder.setTestDeviceIds() instead.
Run Code Online (Sandbox Code Playgroud) 我的问题是广告根本没有在我的应用,测试模式中显示.我将把这个问题专门用于测试模式,一旦我开始工作,我会担心实时广告.
发展信息
我正在使用Eclipse进行开发.
我在Android应用中使用Google Play服务和Admob设置了广告,如Google提供的在线文档中所述.
我使用addTestDevice("xxxxxxxxxxxxxxxx")添加了我的设备ID,并多次检查散列设备ID以确保它是正确的.
问题(见下面的日志信息)
当我在设备上运行应用程序时,根本不会显示任何广告.即使我将设备添加为测试设备,也会发生这种情况.
我搜索过高低,并发现了很多类似的问题,但我还没有找到这个具体问题的答案.
LogCat输出
10-28 13:56:41.659: I/Ads(1704): Starting ad request.
10-28 13:56:42.187: I/Ads(1704): No fill from ad server.
10-28 13:56:42.187: W/Ads(1704): Failed to load ad: 3
10-28 13:56:42.199: W/Ads(1704): No GMSG handler found for GMSG: gmsg://mobileads.google.com/jsLoaded?google.afma.Notify_dt=1414504602197
Run Code Online (Sandbox Code Playgroud)
我的活动
package bb.hoppingbird;
import org.cocos2d.layers.CCScene;
import org.cocos2d.nodes.CCDirector;
import org.cocos2d.opengl.CCGLSurfaceView;
import com.google.android.gms.ads.AdListener;
import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.AdSize;
import com.google.android.gms.ads.AdView;
import com.google.android.gms.ads.InterstitialAd;
import android.app.Activity;
import android.content.SharedPreferences;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.support.v4.view.ViewPager.LayoutParams;
import android.util.DisplayMetrics;
import android.view.KeyEvent;
import android.widget.RelativeLayout;
import android.widget.Toast;
public …Run Code Online (Sandbox Code Playgroud) 我注意到,当我在build.gradle文件中使用以下内容时,会自动添加以下权限
compile 'com.google.android.gms:play-services:7.5.0'
Run Code Online (Sandbox Code Playgroud)
早期版本的播放服务不会出现这种情况.有没有人有解决方案来删除这些不需要的权限?
我只使用广告功能(INTERNET和ACCESSNETWORK_STATE).我不需要LOCATION和USE_CREDENTIALS权限.如何删除这些不需要的权限?
我注意到'manifest-merger-xxx-debug-report.txt'文件包含以下内容
...<snipped bunch of other merges>
MERGED from com.google.android.gms:play-services-maps:7.5.0:22:5
android:name
ADDED from com.google.android.gms:play-services-maps:7.5.0:22:22
uses-permission#android.permission.ACCESS_COARSE_LOCATION
ADDED from com.google.android.gms:play-services-maps:7.5.0:23:5
MERGED from com.google.android.gms:play-services-maps:7.5.0:23:5
MERGED from com.google.android.gms:play-services-maps:7.5.0:23:5
MERGED from com.google.android.gms:play-services-maps:7.5.0:23:5
android:name
ADDED from com.google.android.gms:play-services-maps:7.5.0:23:22
uses-feature#0x00020000
ADDED from com.google.android.gms:play-services-maps:7.5.0:24:5
MERGED from com.google.android.gms:play-services-maps:7.5.0:24:5
MERGED from com.google.android.gms:play-services-maps:7.5.0:24:5
MERGED from com.google.android.gms:play-services-maps:7.5.0:24:5
android:glEsVersion
ADDED from com.google.android.gms:play-services-maps:7.5.0:25:8
android:required
ADDED from com.google.android.gms:play-services-maps:7.5.0:26:8
android:uses-permission#android.permission.READ_EXTERNAL_STORAGE
IMPLIED from AndroidManifest.xml:2:1 reason: com.google.android.gms.maps requested WRITE_EXTERNAL_STORAGE
uses-permission#android.permission.GET_ACCOUNTS
ADDED from com.google.android.gms:play-services-wallet:7.5.0:21:5
android:name
ADDED from com.google.android.gms:play-services-wallet:7.5.0:21:22
uses-permission#android.permission.USE_CREDENTIALS
ADDED from com.google.android.gms:play-services-wallet:7.5.0:22:5
android:name
ADDED from com.google.android.gms:play-services-wallet:7.5.0:22:22 …Run Code Online (Sandbox Code Playgroud) android android-manifest admob android-permissions google-play-services
我正在尝试加载Admob原生广告.之前(在应用更新之前)广告过去曾经展示但现在却没有展示.我已经发布了代码,xml和下面的Logcat.
码
NativeExpressAdView adView = (NativeExpressAdView) myView.findViewById(R.id.adView);
AdRequest request = new AdRequest.Builder()
.addTestDevice("5BCFF0AAE83AF424648A954038C71DE6")
.addTestDevice("A5E3E2068BD88202CBC281AD76984BEE")//infocus
.build();
adView.loadAd(request);
Run Code Online (Sandbox Code Playgroud)
XML
<com.google.android.gms.ads.NativeExpressAdView
android:id="@+id/adView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
ads:adSize="320x150"
ads:adUnitId="ca-app-pub-5059726881726792/6223900262"></com.google.android.gms.ads.NativeExpressAdView>
Run Code Online (Sandbox Code Playgroud)
logcat的
07-14 20:39:57.349 11508-11508/? W/Ads: Failed to load ad: 0
07-14 20:40:07.373 11508-11663/? W/Ads: There was a problem getting an ad response. ErrorCode: 0
Fail to forward ad response.
android.os.DeadObjectException
at android.os.BinderProxy.transactNative(Native Method)
at android.os.BinderProxy.transact(Binder.java:511)
at com.google.android.gms.ads.internal.request.ab.a(:com.google.android.gms:93)
at com.google.android.gms.ads.internal.request.service.i.run(:com.google.android.gms:638)
at com.google.android.gms.ads.internal.util.u.call(:com.google.android.gms:1055)
at com.google.android.gms.ads.internal.util.v.run(:com.google.android.gms:75)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:423)
at java.util.concurrent.FutureTask.run(FutureTask.java:237)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
at java.lang.Thread.run(Thread.java:818)
07-14 20:40:19.539 1975-4922/? …Run Code Online (Sandbox Code Playgroud) 我在Cordova和AndroidStudio工作,以创建Android/iOS应用程序.一切都工作正常,直到我昨天将我的Cordova更新为8.我还将Node更新到最新版本.当我创建Cordova项目并添加Android平台时.它产生一个完全不同的目录结构.我无法看到assets,res以及src项目平台目录中的文件夹D:\testApp1\platforms\android.更重要的是,上面的目录丢失了AndroidManifest.xml,这导致admob插件无法添加.
这是添加插件时出现的错误:
无法安装'cordova-plugin-admobpro':错误:ENOENT:没有这样的文件或目录,在Object.fs.openSync上打开'D:\ Projects\testApp1\platforms\android\AndroidManifest.xml'(fs.js:646 :18)在Object.parseElementtreeSync(D:\ Projects\testApp1\platforms\android\cordova \node_modules\cordova-common\src\util\xml-helpers)的Object.fs.readFileSync(fs.js:551:33)处. js:180:27)在AndroidProject.getPackageName(D:\ Projects\testApp1\platforms\android\cordova)的新AndroidManifest(D:\ Projects\testApp1\platforms\android\cordova\lib\AndroidManifest.js:29:20)\lib\AndroidProject.js:99:12)在handleInstall(C:\ Users\Rao\AppData\Roaming)的Api.addPlugin(D:\ Projects\testApp1\platforms\android\cordova\Api.js:223:57)位于C:\ Users\Rao\AppData\Roaming \npm \node_modules\cordova \node_modules\cordova-lib\plugman\install.js:357:28 at _fulfilled(C:\ Users\Rao\AppData\Roaming \npm \node_modules\cordova \node_modules\cordova-lib \node_ modules\q\q.js:787:54)at self.promiseDispatch.done(C:\ Users\Rao\AppData\Roaming \npm \node_modules\cordova \node_modules\cordova-lib \node_modules\q\q.js: 816:30)
有人可以帮忙吗?
我想在我的Android应用程序中显示AdMob的广告.我在文档中做了所有必要的事情.但我无法运行我的应用程序,因为我的AndroidManifest.xml上有一行错误:
<activity android:name="com.google.ads.AdActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"/>
Run Code Online (Sandbox Code Playgroud)
错误是:
error: Error: String types not allowed (at 'configChanges' with value 'keyboard|keyboardHidden|orientation|
screenLayout|uiMode|screenSize|smallestScreenSize').
Run Code Online (Sandbox Code Playgroud)
但是,如果我删除了某个值,我的应用程序正在运行,而不是广告,而是我的文本:"您必须在AndroidManifest.xml中使用configChanges声明AdActivity."
我不知道如何解决这个问题.
我正在使用android SDK 2.1和最后一个google adMob SDK 4.3.1
谢谢
我试图将admob包含在Eclipse中的Android应用程序中.但是我在layout.xml中遇到错误.Eclipse告诉我com.admot.android.ads.AdView是一个未绑定的前缀.我按照pdf指令在构建路径中包含了admob库.但它似乎仍然没有找到AdView类.但为什么?
这是产生错误的布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res/renegrothmann.kalah"
android:layout_width="wrap_content" android:layout_height="wrap_content"
>
<renegrothmann.kalah.GameView
android:id="@+id/gameView" android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_margin="2px"
/>
<com.admob.android.ads.AdView
android:id="@+id/ad"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
myapp:backgroundColor="#000000"
myapp:primaryTextColor="#FFFFFF"
myapp:secondaryTextColor="#CCCCCC"
/>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud) 是否有任何AdMob虚拟ID用于测试目的?我是否需要注册app并获取MY_AD_UNIT_ID?
我从已弃用的 GDPR 同意库切换到新的用户消息传递平台,并使用了文档中所述的代码。
我注意到,当用户点击“管理选项”然后“确认选择”时,广告将完全停止显示(广告加载失败,没有广告配置),而且我无论如何也找不到检查用户是否同意使用个人资料。
这是有问题的,因为我的应用程序纯粹依赖于广告,如果广告不显示我就会赔钱,所以我想强制用户同意使用他们的个人数据,否则应用程序应该无法使用。
我在Github上做了一个测试项目,这样每个人都可以测试这个行为。如果您没有使用模拟器,则需要将“TEST_DEVICE_ID”更改为您的模拟器。
我怎样才能实现这个目标?